Java 找不到符号-方法错误

Java 找不到符号-方法错误,java,generics,extends,comparable,Java,Generics,Extends,Comparable,我正在努力学习泛型类和实现 我正在尝试创建一个扩展ArrayList的泛型类(我知道这是一种不好的做法,我必须这么做)。我想使用comparable对arrayList中的条目进行排序(我不允许使用.sort()。下面是扩展类: import java.util.ArrayList; import java.util.*; /** * extending to ArrayList */ public class SortedArrayList<E> extends ArrayL

我正在努力学习泛型类和实现

我正在尝试创建一个扩展ArrayList的泛型类(我知道这是一种不好的做法,我必须这么做)。我想使用comparable对arrayList中的条目进行排序(我不允许使用.sort()。下面是扩展类:

import java.util.ArrayList;
import java.util.*;

/**
 * extending to ArrayList
 */
public class SortedArrayList<E> extends ArrayList<E> 
{

/**
 * Constructing the super
 */
public SortedArrayList()    
{
   super();

  }

  public  void insertAndSort (E element){
  if (isEmpty()){
      add(element);
    }

  for ( int i = 0; i < size(); i++){
      E otherElement = get(i);
      if(element.compareTo(otherElement) > 0){
          add(i, element);
        }
      if(element.compareTo(otherElement) < 0) {
          add(i+1, element);
        }
    }

}

}
import java.util.ArrayList;
导入java.util.*;
/**
*扩展到ArrayList
*/
公共类SorterDarrayList扩展了ArrayList
{
/**
*建设超级城市
*/
公共物品清单()
{
超级();
}
公共void insertAndSort(E元素){
if(isEmpty()){
添加(元素);
}
对于(int i=0;i0){
增加(一,要素);
}
if(元素比较到(其他元素)<0){
增加(i+1,要素);
}
}
}
}

我想在被排序的对象类中实现compareTo方法,但当我尝试编译SortedArrayList类时,它返回一个错误,说“无法识别符号-方法compareTo(E)”。我知道这是因为“元素”实际上不是要调用的对象,它是泛型的。有没有办法告诉编译器compareTo()方法是从一个现在不存在的对象调用的,但在调用时会调用它?

您应该像这样声明类:

public class SortedArrayList<E extends Comparable> extends ArrayList<E>
公共类SorterDarrayList扩展了ArrayList

compareTo()
仅对实现了
Comparable

的类可用。您应该这样声明该类:

public class SortedArrayList<E extends Comparable> extends ArrayList<E>
公共类SorterDarrayList扩展了ArrayList

compareTo()
仅适用于实现
Compariable

的类相关:相关:
比较
!我已经尝试解决此问题两天了。轻松解决此问题带来的解脱和烦恼是一种奇怪的感觉。谢谢。
比较
!我一直在尝试解决此问题现在已经两天了。轻松和烦恼的混合让人感觉很奇怪。谢谢。