为什么compareTo()不起作用?

Jer*_*ang 0 java generics arraylist compareto

我有两个ArrayLists:

ArrayList<String> testList = new ArrayList<>();
ArrayList<String> wordList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

它们被传递给一个方法:

public static void binSearch(ArrayList a1, ArrayList a2)
Run Code Online (Sandbox Code Playgroud)

在方法内部,我想比较两个ArrayList之间的字符串:

a1.get(i).compareTo(a2.get(newEnd / 2))
Run Code Online (Sandbox Code Playgroud)

但是,我收到一条错误消息:

cannot find symbol
symbol: method compareTo(Object)
location: class Object
Run Code Online (Sandbox Code Playgroud)

我听说有些人说我需要实现/扩展Comparable,但似乎有些人在使用该方法时没有导入/实现/扩展任何东西.

Tag*_*eev 5

不要使用原始类型.用你的binSearch方式声明:

public static void binSearch(ArrayList<String> a1, ArrayList<String> a2)
Run Code Online (Sandbox Code Playgroud)

或者如果你想支持任何Comparable类型引入泛型类型变量:

public static <T extends Comparable<? super T>> void binSearch(List<T> a1, List<T> a2)
Run Code Online (Sandbox Code Playgroud)