私はJavaが初めてです。<>
Javaで何に使われているか知りたいです。
これは私が混乱する例です:
List<File> sourceFileList = new ArrayList<File>
私はJavaが初めてです。<>
Javaで何に使われているか知りたいです。
これは私が混乱する例です:
List<File> sourceFileList = new ArrayList<File>
<>
のジェネリック型を保持するプレースホルダーです。タイプ パラメータを山かっこに埋め込みます。
List<File> sourceFileList = new ArrayList<File>
上記のコードは、 List がタイプFileのインスタンスのみを持つことができることを示しています。コンパイル時の型安全性を提供します。ファイル オブジェクトのファイル/サブ タイプのみをリストに追加できます。
sourceFileList.add(new File("test.txt"));
sourceFileList.add("abc");// compiler error as your
list only accepts File instances
<> は一般に Java のジェネリック データ型に使用されます。
したがって、ここで List は、ファイルのリストを持っていることを意味します。
List<Person> と書くと人のリストになります。したがって、 <> 内のテキストを任意のクラスのオブジェクトに置き換えることができます。
これは、バージョン 1.5 で導入された Java Generics の一部です。
次のリンクが役立つ場合があります: http://docs.oracle.com/javase/tutorial/java/generics/
これは、オブジェクトにどのような種類のデータが入っているかをコンパイラーに伝えるためのものです。たとえば、List<File>
ファイル タイプのデータで埋められるリストを作成することを Java に指示します。別の例としてArray<Integer>
、整数データを入力する配列が必要であることをJavaに伝えます。
Java Generics ( C++ テンプレートと混同しないでください)。ジェネリック化されたクラスを定義するときに、型を定義できます。
あなたの場合、のList<File>
タイプを含むリストがあると述べていますFile
。
Javaジェネリックチュートリアルをご覧ください:
http://docs.oracle.com/javase/tutorial/java/generics/
そして、あなたが本当にそれに興味があるなら、Java言語仕様、特にジェネリックに関する部分をチェックしてください:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.1.2
ArrayList
あなたの例では、オブジェクトのインスタンス化に <> が使用されていFile
ます。<> は、ArrayList が保持するオブジェクトのタイプを指定するだけです
ジェネリック...
String オブジェクトを配列リストに格納し、オブジェクトを取得するには、型キャストする必要がありました。どのオブジェクトを ArrayList に格納したかを知っているのはプログラマだけなので、必要な型に型キャストする責任があります。彼が誤って間違った型にキャストした場合はどうなりますか?
Java コード:
System.out.println((Integer)myArrayList.get(3));
エラー: スレッド「メイン」での例外 java.lang.ClassCastException: java.lang.String
このような状況を回避するために、ジェネリックが登場します。リストがまさにそのタイプのオブジェクトのみを保持または保存できるように、リストのタイプを指定できます。他の型のオブジェクトはリストに格納されないため、型キャストは必要ありません。
Java コード:
ArrayList<String> myArrayList = new ArrayList<String>();
myArrayList は 'String オブジェクトを格納できるだけではありません。型の安全性が確保され、プログラマは配列リストをより適切に制御できるようになりました。
クラスまたはインターフェイスのインスタンスを宣言するときに、型を山かっこで指定します。ジェネリックがない場合、型パラメーターは省略されますが、要素がリストから抽出されるたびに明示的にキャストする必要があります。
コードを読むために英語に翻訳したい場合は、<> が表示されたときに「of type」と言えます。
例えば
List<File> sourceFileList
「ファイル タイプのリスト、「sourceFileList」」と言います。
リストのデータ型。例:
ArrayList<String> yourArrayList = new ArrayList<String>;
あなたArrayList
を文字列として宣言します。yourArrayList.get(index).toString();
を使用する代わりに、 (この例では) を使用yourArrayList.get(index);
して返すことができ、データ型のみを受け入れます。String
String