在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注意我是如何说一些数字子类型的。这些是所有数值原语的包装器类型。运营商将与他们合作,但不是通用的。对于所有数值类型,您无法使用泛型获得此行为。<运算符未为任何对象(包括数字子类)定义。在自动取消装箱转换为原语的情况下,它正好工作,但原因与数字或泛型无关