私はオブジェクトのリストを持っている単一の引用符で囲まれた単一のプロパティでコンマ区切りの文字列を生成する必要がある。メソッドリファレンスを使用してユーティリティ関数を一般化する方法/ java 8
2例
public String partIDsToString(List<Part> parts){
StringBuilder sb = new StringBuilder();
for(Part part : parts)
sb.append("'"+part.getPartNumber() + "',");
return sb.substring(0,sb.length()-1);
}
public String companyIDsToString(List<Company> parts){
StringBuilder sb = new StringBuilder();
for(Company c : parts)
sb.append("'"+c.getId() + "',");
return sb.substring(0,sb.length()-1);
}
私は将来的にこのような複数のメソッドを作成する必要がありますし、この機能を一般化する方法があった場合には思っていた、このような何かを探してイム。
public String objectPropertyToString(List<Object> list, Method getProperty){
StringBuilder sb = new StringBuilder();
for(Object obj: list)
sb.append("'"+obj.getProperty() + "',");
return sb.substring(0,sb.length()-1);
}
List<Company> companies = getCompaniesList();//not important
String result = objectPropertyToString(companies , Company::getId);
List<Part> parts= getPartsList();//not important
String result = objectPropertyToString(parts, Part::getPartNumber);
これは、メソッド参照/ lambdas、または他の方法で行うことができますか?
おかげで、これは私が探していたまさにです。 –
'f :: apply'の使用には意味がありません。 'apply'メソッドが他の' Function'メソッドの 'apply'メソッドを呼び出す新しい' Function'を作成しています。ここで 'f'を使うだけです。 – Holger
Duh、thanks @Holger –