Java 无法使用具有泛型扩展号的接口 publicstaticvoidmain(字符串[]args){ 试验((a,b)->a+b,2,3); } 专用静态空隙试验(Op a,int num1,int num2){ 系统输出println(a.op(num1,num2)); } 专用静态接口{ 公共财政支出(T num1,T num2); }
在第二行中,对于二进制运算符+,我有错误的操作数类型。我应该怎么做才能使它工作?通过在Java 无法使用具有泛型扩展号的接口 publicstaticvoidmain(字符串[]args){ 试验((a,b)->a+b,2,3); } 专用静态空隙试验(Op a,int num1,int num2){ 系统输出println(a.op(num1,num2)); } 专用静态接口{ 公共财政支出(T num1,T num2); },java,generics,Java,Generics,在第二行中,对于二进制运算符+,我有错误的操作数类型。我应该怎么做才能使它工作?通过在test中的Op中添加类型 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 inte
test
中的Op
中添加类型
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);
}
专用静态无效测试(Op a,int num1,int num2){
系统输出println(a.op(num1,num2));
}
然后您的代码将输出5
(正如我认为您所期望的那样)。可能重复的
private static void test(Op<Integer> a, int num1, int num2) {
System.out.println(a.op(num1, num2));
}