我正在寻找一种很好的Java方法(版本8),相当于Object
上的Groovy with
方法。
假设我有一个类(用Java完成,所以我可以在每个中使用):
class MyClass {
private String someVar;
public void setSomeVar(String newVal) {
this.someVar = newVal;
}
public String getSomeVar() {
return this.someVar;
}
}
在Groovy中,我可以:
def mc = new MyClass().with {
setSomeVar('Hello World!') // Yes, I'm using an explicit setter for clearer comparison
it // return the instance
}
在Java中,我能想到的最接近的是使用双括号初始化器:
MyClass mc = new MyClass(){{
setSomeVar("Hello World!");
}};
然而some advise against using the double brace initializer。事实上,挥之不去的引用确实让我谨慎。
那么,还有其他选择吗?
答案 0 :(得分:1)
java中没有这样的构造,相当于groovy的with
。最接近的是提到的双支撑初始化器。
你想要达到什么目的?描述问题,也许在java中有一个现成的模式来解决它?