如何在不修改类Case
的情况下解决类Test
中的两个错误行?
class Case {
public boolean isEmpty() {
return true;
}
public static boolean isEmpty(Case t) {
return true;
}
}
public class Test {
public static void main(String[] args) {
Predicate<Case> forNonStaticMethod = Case::isEmpty;//<--TODO: fix compile error:
Predicate<Case> forStaticMethod = Case::isEmpty;//<--TODO: fix compile error:
//Ambiguous method reference: both isEmpty() and isEmpty(Case) from the type Case are eligible
}
}
您可以使用lambda表达式而不是方法引用:
Predicate<Case> forNonStaticMethod = c -> c.isEmpty();
Predicate<Case> forStaticMethod = c -> Case.isEmpty(c);