使用泛型,编译器应该在运行时推断对象T的类型,但它会给我一个静态违规,如标题中所述,我无法弄清楚(使用其他问题)来解决这个问题。
这是我的方法:
public static <T> boolean linearSearchIterative(T[] array, T obj) {
for(int i = 0; i < array.length; i++) {
if(array[i].equals(obj)) {
return true;
}
}
return false;
}
以下是我在main方法中声明的方法:
int x[] = {2, 3, 5, 6, 1};
int y = 1;
System.out.println(LinearSearch.linearSearchIterative(x, y));
答案 0 :(得分:5)
Java中的泛型仅适用于引用类型,而不适用于基本类型。
将运行代码更改为:
Byte x[] = {2, 3, 5, 6, 1}; // or Integer
Byte y = 1; // or Integer