メソッドへの参照をパラメータとして渡すことはできますか?例えば関数参照をパラメータとして渡す
:
public static void main(String[] args) {
String data = "name: John, random text, address: leetStreet";
Person person;
//if regex matches, use method reference, to send the result.
applyDataToPerson(data, "name: (\\w+)", person, Person::setName);
applyDataToPerson(data, "address: (\\w+)", person, Person::setAddress);
}
private static void applyDataToPerson(String data, String regex, Person person,
Function<Person> f) {
Matcher match = Pattern.compile(regex).matcher(data);
if (match.matches()) person.f(match.group(1));
}
class Person {
private String name;
private String address;
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
ない場合は、メソッドへの参照を与えることに代替どうなりますか?スイッチケースの構築?
を既存のメソッド(他のものの中でも)に[メソッド参照](https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html)を渡すことができます – Tibrogargan
@Tibrogarganメソッドの署名はどのように見えますか? 'Comparator super T>'は私には意味がありません。 – JasperJ
「機能」とは何を表していますか?我々が['java.util.function.Function'](https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html)について言及している場合、2コードはコンパイルできません。(これは 'person.f(...) 'だけではありません)。 _alternatives_を要求する前に、作業コードがあることを確認してください... –
Tunaki