请教一下,我最近在学习泛型时遇到这个问题:
我约束了泛型的类型为Integer,在对泛型数组内的元素进行操作时报错:
java: 不兼容的类型: int无法转换为T.
public static <T extends Integer> void xorTest(T[] arr, int a, int b) {
Integer m = arr[a];
Integer n = arr[b];
m ^= n;
arr[a] ^= arr[b]; // 报错java: 不兼容的类型: int无法转换为T
}
编译器还没那么智能,arr[a]虽然能调用Integer的方法,但是还没有到直接拿着T类型的变量能直接用操作符的地步,这样写就可以了
Integer a1= arr[a];
Integer b1=arr[b];
a1 ^= b1;
int又不是继承integer