我对泛型不熟悉。也许我的问题很愚蠢,但为什么以下不起作用?
public <T extends Integer> Integer methodA(T t){
return t = t + 1;
}
它表示运算符不能应用于“T”、“int”。我应该怎么做才能使这段代码工作?
最佳答案
这会起作用
public <T extends Integer> Integer methodA(T t){
return t + 1;
}
return t = t + 1;
不起作用的原因是 t+1
返回一个只能是 auto 的 int
-装箱为整数
。据编译器所知,T
可能是 Integer
的子类(尽管不存在这样的东西,因为 Integer
是Final 类),因此它不允许将任何 Integer
分配给 T
类型的变量。
关于Java 泛型方法 <T extends Integer> +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304129/