誰かがコードを掲載:これは、変数型の定義とどのように違いますか?別の答えに
List<ISpeak> animalsThatTalk = new ArrayList<ISpeak>();
<>は何をしますか?
更新
私は私の第二の例では、私は混乱に起因する私の質問を言い換えてきました...コンパイルされないでしょう知っています。
誰かがコードを掲載:これは、変数型の定義とどのように違いますか?別の答えに
List<ISpeak> animalsThatTalk = new ArrayList<ISpeak>();
<>は何をしますか?
更新
私は私の第二の例では、私は混乱に起因する私の質問を言い換えてきました...コンパイルされないでしょう知っています。
タイプパラメータには、角括弧(<...>
)が使用されます。タイプを指定する必要があります(例: Integer
またはString
です。値のパラメータには丸括弧が使用されています。 1または "Hello World"。
例:
new ArrayList<String>(3)
これは、初期容量を持つ文字列の新しいリストを定義します3. String
は型パラメータです。 3
は値パラメータです。
あなたの質問は<> vs()の使用についてです。コレクションでは、通常、コレクションのパラメーターまたはタイプを指定する必要があります。これを行うには<>が使用されます。
だからあなたの例では、型ISpeakの一覧が
List<ISpeak>
を作成しているあなたも、整数
List<Integer>
<のリストを作成することができます>単にあなたはのタイプを定義することができますコレクションに含まれるオブジェクト。
第二の例
List (Speak) animalsThatTalk
はコンパイルされません。コンパイラは、関数Listを引数Speakで呼び出そうとします。
この2番目の例は、コンパイルには至りません。 – Falmarri
何ですか?あなたがカッコで何をしようとしているのか分かりません。 –
?私は2番目の例で構文を取得しません。 'List animalsThatTalk = new ArrayList ();'を意味するのではないでしょうか? –
birryree