0

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
4

2 に答える 2

1

エラーが言ったように、List抽象的で、具体的な実装が必要です。あなたが投稿した場合、そうArrayListします。

Listまた、生の型として使用していることにも注意してください。そうしないでください (Java 5 より前のバージョンを使用している場合を除く)。型パラメーター (ここではString) でパラメーター化します。

さらに: do not change the Declaration of wordsto be ArrayList:Listで十分 (通常は) であり、そのままにしておくことで、後で実装を変更することができます。

結論は:

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

または Java 7 を使用している場合:

List<String> words= new ArrayList<>();
于 2013-05-19T23:41:00.757 に答える
0

をインスタンス化することはできませんjava.util.Listが、その実装の一部です。のように (たとえば) java.util.ArrayList。それらはジェネリックであることに注意してください。

以下を修正するだけです。

 List words= new List();

 List<String> words= new ArrayList<String>();
于 2013-05-19T23:42:33.690 に答える