在Java 8中,lambda表达式是实现功能接口的匿名内部类的替代.看起来你在这里使用Predicate,因为表达式是一个布尔值.
Predicate interface是在Java 8中引入的,因此您需要自己重新创建它.您将无法创建默认或静态方法,因此请保留功能接口方法.
public interface Predicate
{
public boolean test(T t);
}
然后,使用匿名类声明替换lambda表达式.
System.out.println(nicksGraph.findPath(
nicksGraph.nodeWith(new Coordinate(0,0)),
// Replacement anonymous inner class here.
new Predicate() {
@Override
public boolean test(Coordinate a) {
// return the lambda expression here.
return a.getX()==3 && a.getY()==1;
}
},
new PriorityQueue, Integer>(funcTotal)));