我有以下代码,其中 Binding.createStringBinding(...)
部分将重复很多次,唯一的区别是使用的方法,即 getA()
、getB()
、getC()
this.attributeA.bind(Bindings.createStringBinding(() -> {
if(webService.getLastValue() != null){
return webService.getLastValue().getA();
} else{
return "";
}
}, webService.lastValueProperty()));
this.attributeB.bind(Bindings.createStringBinding(() -> {
if(webService.getLastValue() != null){
return webService.getLastValue().getB();
} else{
return "";
}
}, webService.lastValueProperty()));
新: 这是我想要重用的代码部分:
Bindings.createStringBinding(() -> {
if(webService.getLastValue() != null){
return webService.getLastValue().getB();
} else{
return "";
}
}, webService.lastValueProperty())
如何使其可重复使用?也许将其作为一个函数?
最佳答案
也许是这样的:
private Binding createBinder(final Supplier<String> lambda) {
return Bindings.createStringBinding(() -> {
if(webService.getLastValue() != null){
return lambda.get();
} else{
return "";
}
}
}
称呼为
this.attributeA.bind(createBinder(() -> webService.getLastValue().getA()), webService.lastValueProperty());
this.attributeB.bind(createBinder(() -> webService.getLastValue().getB()), webService.lastValueProperty());
关于java - 我怎样才能编写一个方法来使这段代码可重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33104126/