Java 8 Verweis auf eine statische Methode vs. Instanz-Methode

sagen, ich habe den folgenden code

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 ich beziehen sich auf die Instanz-Methode-version mit den A::ist die Art der notation? Vielen Dank

  • Du meinst, wie zum aufrufen von Instanz-Methode, wenn beide diese Methoden gibt es?
  • Die compiler-Fehlermeldung lautet: "Verweis ist nicht eindeutig, beide Methode(A) in A und Methode() in A match". So klar der compiler nicht entscheiden kann, hier. Ich Wette, Ihre beste Wahl ist, ändern Sie die Schreibweise eines lambda-Ausdrucks zu machen, offensichtlich.
Schreibe einen Kommentar