在java中实现简单泛型函数时出现编译错误?
这是我的密码:在java中实现简单泛型函数时出现编译错误?,java,generics,Java,Generics,这是我的密码: public class ArrayAlgorithm { public static void main(String[] args) { // TODO Auto-generated method stub return ; } public static <T> T findMax(T[]a) { T max=a[0]; for (T t : a) {
public class ArrayAlgorithm {
public static void main(String[] args) {
// TODO Auto-generated method stub
return ;
}
public static <T> T findMax(T[]a)
{
T max=a[0];
for (T t : a) {
if(max<t) //this line generate compile error
max=t;
}
return max;
}
}
inline:ifmax您的findMax方法是泛型的,使用声明的类型变量T作为单个方法参数的类型。由于类型参数没有任何泛型边界,因此在方法中,它最多可以被视为一个对象
运算符泛型不适用于原语。public static t findMaxT[]a为什么这也不起作用?还是同样的错误。因为我认为T作为数字的子类型应该支持@AlexWei注意我是如何说一些数字子类型的。这些是所有数值原语的包装器类型。运营商将与他们合作,但不是通用的。对于所有数值类型,您无法使用泛型获得此行为。<运算符未为任何对象(包括数字子类)定义。在自动取消装箱转换为原语的情况下,它正好工作,但原因与数字或泛型无关