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)
那么它可能会起作用。我强烈怀疑这两个错误都是这个问题的结果