在Java中出现字母错误 - 错误和警告?

时间:2013-05-19 23:40:12

标签: java list alphabet

我正在尝试使用Collections.sort方法和java.util.List创建一个按字母顺序排列列表的程序,错误是:1错误,发现了15个警告:

Error: java.util.List is abstract; cannot be instantiated
--------------
** Warnings **
--------------
Warning: unchecked call to add(E) as a member of the raw type java.util.List
Warning: unchecked method invocation: method sort in class java.util.Collections is applied to given types
  required: java.util.List<T>
  found: java.util.List

我的代码:

public static void preset(){
    List words= new List();
    words.add("apple");
    words.add("country");
    words.add("couch");
    words.add("shoe");
    words.add("school");
    words.add("computer");
    words.add("yesterday");
    words.add("wowza");
    words.add("happy");
    words.add("tomorrow");
    words.add("today");
    words.add("research");
    words.add("project");
    Collections.sort(words);




  } //end of method preset

2 个答案:

答案 0 :(得分:1)

正如错误所说,List是抽象的,你需要一些具体的实现。在您发布的案例中,ArrayList会这样做。

另请注意,您使用List作为原始类型;不要那样做(除非你在Java 5之前使用的是版本)。使用类型参数(此处为String)对其进行参数化。

还有:不要将words的声明更改为ArrayListList足够好(通常),并保持不变,您可以更改稍后实施。

总结:

List<String> words= new ArrayList<String>();

或者如果使用Java 7:

List<String> words= new ArrayList<>();

答案 1 :(得分:0)

您无法实例化java.util.List,但有些实现。喜欢(例如)java.util.ArrayList。请注意,它们是Generic。

请修正以下内容:

 List words= new List();

 List<String> words= new ArrayList<String>();