私はlamdbasを使用していますので、3つの異なるオブジェクトから取得できる値に従って、ModelObjectのプロパティを一貫して設定できます。私はbar(model::setB, bObject)
にbar(value -> model.setB(value), bObject);
を書き換えることが可能であることをhere読んだ2つのパラメータを持つメソッドでのコロンの代入を
public class Processor {
private void bar(Setter setter, MyClass myObject) {
String variable = myObject.getStringByABunchOfMethods();
setter.setVariable(variable);
}
protected void foo(...) {
...
bar(value -> model.setA(CONSTANT, value), aObject);
bar(value -> model.setB(value), bObject);
bar(value -> model.setC(value), cObject);
...
}
private interface Setter {
public void setVariable(String string);
}
}
public interface IModel {
public void setA(String arg0, String arg1);
public void setB(String arg0);
public void setC(String arg0);
}
:コードは次のように動作します。私はこれがより良く、より簡潔に見えると思いますが、setA
メソッドをdouble ::の表記法に書き換える方法は見つかりませんでした。これが可能かどうか誰にでも教えてもらえますか?もしそうなら、これはどうですか?
[メソッド参照リンク](https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html)を参照してください。あらゆる種類のメソッド参照を表示します。これが役に立ったらいいですか –
私はそれが可能ではないと思います。 – toongeorges