lambda函数不起作用

时间:2016-02-12 02:41:35

标签: 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(){
    public int operation(int num) {return num*2;}
}, 15);

但是当我使用lambda method(a->a*2, 15);时,我有2个错误:

  

此表达式的目标类型必须是功能接口

  

方法...不适用于参数((a) - > {},int)

1 个答案:

答案 0 :(得分:3)

Lambdas只能实现接口,不能扩展抽象类。如果您的method有签名

public static void method(Exec mc, int num)
那么它可能会奏效。我强烈怀疑这两个错误都是这个问题的结果。