java不兼容类型编译器错误

我是Java新手,这段代码在编译时给我错误:

import java.util.*; public class Sorts { public List ascendent(List list) { return Collections.sort(list); } public List descendant(List list) { return Collections.sort(list, Collections.reverseOrder()); } public static void main(String[] args) { Sorts sorts = new Sorts(); List list = new ArrayList(); list.addAll(Arrays.asList(1,9,2,8,3,7,4,6,5,5)); System.out.println(sorts.ascendent(list).toString()); } } 

错误是从ascendent和descendent方法返回的行:

不兼容的类型
必需:java.util.List(java.lang.Integer)
发现:无效

但在我看来,我正在正确地投射我的ListArray对象,出了什么问题?

Collections.sort void ,您不能在return语句中使用它。

此外, Collections.sort修改原始列表,因此您根本不必返回新列表。

删除return

 public void ascendent(List list) { Collections.sort(list); } public void descendant(List list) { Collections.sort(list, Collections.reverseOrder()); } 

此外,相应地更改您的代码。 这个:

 System.out.println(sorts.ascendent(list).toString()); 

必须更改为:

 sorts.ascendent(list); System.out.println(list); 

见Collections.sort()

public static … void sort(列表列表)

它不会返回排序列表,只是对列表进行排序。

你需要:

 Collections.sort(list); return list;