Java lambda函数不工作
用这个Java lambda函数不工作,java,lambda,Java,Lambda,用这个 private static void method (MyClass mc, int num){ System.out.println(mc.operation(num)); } private static interface Exec{ public int operation(int num); } static abstract class MyClass implements Exec{} 我可以使用 method(new MyClass(){ pu
private static void method (MyClass mc, int num){
System.out.println(mc.operation(num));
}
private static interface Exec{
public int operation(int num);
}
static abstract class MyClass implements Exec{}
我可以使用
method(new MyClass(){
public int operation(int num) {return num*2;}
}, 15);
但是当我使用lambda方法时(a->a*2,15)代码>我有两个错误:
此表达式的目标类型必须是函数接口
,及
方法。。。不适用于参数((a)->{},int)
lambda只能实现接口,不能扩展抽象类。如果您的方法
有签名
public static void method(Exec mc, int num)
那么它可能会起作用。我强烈怀疑这两个错误都是这个问题造成的。Lambdas只能实现接口,不能扩展抽象类。如果您的方法
有签名
public static void method(Exec mc, int num)
那么它可能会起作用。我强烈怀疑这两个错误都是这个问题的结果