sagen, dass ich den folgenden Code habenJava 8 Verweis auf eine statische Methode vs. Instanzmethode
public class A {
int x;
public boolean is() {return x%2==0;}
public static boolean is (A a) {return !a.is();}
}
und in einer anderen Klasse ...
List<A> a = ...
a.stream().filter(b->b.isCool());
a.stream().filter(A::is);
//would be equivalent if the static method is(A a) did not exist
die Frage ist, wie beziehe ich mich auf die Instanzmethode Version mit der Notation A :: ist Typ? Vielen Dank
Sie bedeuten haben, wie Instanzmethode aufzurufen, wenn beide diese Methoden gibt es? –
Der Compiler-Fehler sagt: "Verweis auf is ist mehrdeutig, beide Methode ist (A) in A und Methode ist() in A-Übereinstimmung". So kann der Compiler hier nicht entscheiden. Ich wette, deine beste Wahl ist es, die Notation in einen Lambda-Ausdruck zu ändern, um es deutlich zu machen. –