2012-05-13 29 views
9

私はこれしか持っていますが、コンパイラは次のように言います:タイプが一致しません:ArrayListからリストに変換できません 問題は誰にでも分かりますか?私はElipse Java EE IDEを使用しています。タイプの不一致:ArrayListからリストに変換できません

import java.awt.List; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Iterator; 


public class Main { 
    public static void main(String[] args) { 
     List list = new ArrayList(); 


    } 
} 

答えて

21

間違ってインポート、それがjava.util.Listなければなりません。

+0

ええ、あなたは正しいです、ありがとう! –

3

あなたはjava.util.Listの代わりjava.awt.Listをインポートする必要があります。

生の種類の代わりに型パラメーターを使用することもできます。 java.util.ArrayListjava.util.List、ないjava.awt.Listを延びているため

List<String> list = new ArrayList<String>(); 
+0

実際には、文字列を2回指定して冗長型の引数を使用しています。リストを持っているので、ArrayList <>() – Gabe

+0

@Gabeでそれを続けることができます。 Java 7の前には、2番目の 'String'が必要でした。古い習慣は激しく死ぬ。 :) –

2

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

または、前のJava 7へ:リストString値を保持するつもりだったならば、たとえば。あなたは間違ったクラスをインポートする:

import java.awt.List; 

import java.util.List; 
5

java.util.Listではなく、AWTパッケージのリストコントロールであるjava.awt.Listをインポートしました。これは要素のリストを表すコレクションクラスです。したがって、Javaでは論理配列の値リストからウィジェットに変換していると考えられますが、これは意味をなさないものです。あなたは、コレクションをしたいことを明確に示すために、

java.util.List list = new ArrayList(); 

を書いてしまうよう

import java.util.List; 

にインポート行を変更する

は、この問題を解決する必要があります。

しかし、ここでもジェネリックスを使用する必要があります。生のコレクション型を使用することは、以前から廃止されています。最高の答えは、何かを書くことです

List<T> list = new ArrayList<T>(); 

これは役に立ちます。

1

他の人によると、インポートエラーです。エラーがある場合はEclipse EDEを使用しているので、その場所にカーソルを置き、Ctrl + 1を押すと、エラーの修正に役立つ提案が表示されます。

関連する問題