无法使用具有通用扩展号

时间:2016-07-20 01:58:47

标签: java generics

public static void main (String[] args) {
    test((a,b)->a+b, 2, 3);
}

private static void test (Op a, int num1, int num2){
    System.out.println(a.op(num1, num2));
}

private static interface Op <T extends Number>{
    public T op(T num1, T num2);
}

在第二行中我有二元运算符+ 的坏操作数类型。我应该做些什么来使这项工作?

1 个答案:

答案 0 :(得分:1)

将类型添加到Op中的test

private static void test(Op<Integer> a, int num1, int num2) {
    System.out.println(a.op(num1, num2));
}

然后您的代码将输出5(我认为您的预期)。