Java 如何修复不明确的方法引用?
如何在不修改classJava 如何修复不明确的方法引用?,java,java-8,Java,Java 8,如何在不修改class案例的情况下解决class测试中的两条错误行 class Case { public boolean isEmpty() { return true; } public static boolean isEmpty(Case t) { return true; } } public class Test { public static void main(String[] args) {
案例的情况下解决class测试中的两条错误行
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
}
}
类案例{
公共布尔值为空(){
返回true;
}
公共静态布尔值为空(案例t){
返回true;
}
}
公开课考试{
公共静态void main(字符串[]args){
Predicate forNonStaticMethod=Case::isEmpty;//您可以使用lambda表达式而不是方法引用:
Predicate<Case> forNonStaticMethod = c -> c.isEmpty();
Predicate<Case> forStaticMethod = c -> Case.isEmpty(c);
谓词forNonStaticMethod=c->c.isEmpty();
谓词forStaticMethod=c->Case.isEmpty(c);