Java 为什么我会犯错误;二进制运算符“的操作数类型错误”;用我的方法? 公共类t{ 私有ArrayList a=新ArrayList(); 公共无效添加(T x){ a、 加(x); } 公营部门{ T大=a.get(0); 整数计数=1; while(a.get(count)!=null){ 如果(a.get(count)>large) 大=a.get(计数); 计数++; } 回报大; } 公共交通{ T小=a.get(0); 整数计数=1; while(a.get(count)!=null){ 如果(a.get(count)

Java 为什么我会犯错误;二进制运算符“的操作数类型错误”;用我的方法? 公共类t{ 私有ArrayList a=新ArrayList(); 公共无效添加(T x){ a、 加(x); } 公营部门{ T大=a.get(0); 整数计数=1; while(a.get(count)!=null){ 如果(a.get(count)>large) 大=a.get(计数); 计数++; } 回报大; } 公共交通{ T小=a.get(0); 整数计数=1; while(a.get(count)!=null){ 如果(a.get(count),java,generics,arraylist,operators,operands,Java,Generics,Arraylist,Operators,Operands,a.get(int)不能转换为基本数字类型(通常是Number,不能自动取消装箱),则不能使用 您需要提供一个显式的比较器(或者更一般地说,比较器 public class t<T extends Number>{ private ArrayList<T> a = new ArrayList<T>(); public void add(T x){ a.add(x); } public T largest(){ T large = a.get(

a.get(int)
不能转换为基本数字类型(通常是
Number
,不能自动取消装箱),则不能使用

您需要提供一个显式的
比较器
(或者更一般地说,
比较器
public class t<T extends Number>{

private ArrayList<T> a = new ArrayList<T>();

public void add(T x){

  a.add(x);
}

public T largest(){

  T large = a.get(0);
  int count = 1;

  while(a.get(count)!=null){

     if(a.get(count)>large)
        large = a.get(count);
     count++;
  }
  return large;
}

public T smallest(){

  T small = a.get(0);
  int count = 1;

  while(a.get(count)!=null){

     if(a.get(count)<small)
        small = a.get(count);
     count++;
  }
  return small;
}
public class t<T extends Number>{
  private Comparator<? super T> comparator;

  t(Comparator<? super T> comparator) {
    this.comparator = comparator;
  }

  public T largest(){
    // ...
    if (comparator.compare(a.get(count), large) > 0) {
      // ...
    }
    // ...
  }
}