Это правильный код согласно компилятору:
BiPredicate bp = String::equalsIgnoreCase;
Но если я создам свой собственный BiPredicate, он не сможет скомпилироваться. Почему?
private void run() {
BiPredicate bp = String::equalsIgnoreCase; // compiles!
BiPredicate bp2 = MyKlazz::m1; // does not compile!
}
static final class MyKlazz {
private T t;
MyKlazz(T t){
this.t = t;
}
public boolean m1(U u){
System.out.println("in m1.. t: " + this.t + ", u: " + u);
return true; // dummy
}
}
Подробнее здесь: https://stackoverflow.com/questions/783 ... y-custom-b
Мобильная версия