-1

私はJavaが初めてです。<> Javaで何に使われているか知りたいです。

これは私が混乱する例です: List<File> sourceFileList = new ArrayList<File>

4

10 に答える 10

4

<>のジェネリック型を保持するプレースホルダーです。タイプ パラメータを山かっこに埋め込みます。

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

リンク:

于 2013-02-25T09:38:18.463 に答える
1

<> は一般に Java のジェネリック データ型に使用されます。

したがって、ここで List は、ファイルのリストを持っていることを意味します。

List<Person> と書くと人のリストになります。したがって、 <> 内のテキストを任意のクラスのオブジェクトに置き換えることができます。

于 2013-02-25T09:40:06.870 に答える
1

これは、バージョン 1.5 で導入された Java Generics の一部です。

次のリンクが役立つ場合があります: http://docs.oracle.com/javase/tutorial/java/generics/

于 2013-02-25T09:38:58.957 に答える
0

これは、オブジェクトにどのような種類のデータが入っているかをコンパイラーに伝えるためのものです。たとえば、List<File>ファイル タイプのデータで埋められるリストを作成することを Java に指示します。別の例としてArray<Integer>、整数データを入力する配列が必要であることをJavaに伝えます。

于 2013-02-25T09:37:51.483 に答える
0

Java Generics ( C++ テンプレートと混同しないでください)。ジェネリック化されたクラスを定義するときに、型を定義できます。

あなたの場合、のList<File>タイプを含むリストがあると述べていますFile

于 2013-02-25T09:39:05.470 に答える
0

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

于 2013-02-25T09:39:47.530 に答える
0

ArrayListあなたの例では、オブジェクトのインスタンス化に <> が使用されていFileます。<> は、ArrayList が保持するオブジェクトのタイプを指定するだけです

于 2013-02-25T09:40:10.320 に答える
0

ジェネリック...

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 オブジェクトを格納できるだけではありません。型の安全性が確保され、プログラマは配列リストをより適切に制御できるようになりました。

クラスまたはインターフェイスのインスタンスを宣言するときに、型を山かっこで指定します。ジェネリックがない場合、型パラメーターは省略されますが、要素がリストから抽出されるたびに明示的にキャストする必要があります。

于 2013-02-25T09:40:16.000 に答える
0

コードを読むために英語に翻訳したい場合は、<> が表示されたときに「of type」と言えます。

例えば

List<File> sourceFileList 

「ファイル タイプのリスト、「sourceFileList」」と言います。

于 2013-02-25T09:40:58.753 に答える
0

リストのデータ型。例:

ArrayList<String> yourArrayList = new ArrayList<String>;

あなたArrayListを文字列として宣言します。yourArrayList.get(index).toString();を使用する代わりに、 (この例では) を使用yourArrayList.get(index);して返すことができ、データ型のみを受け入れます。StringString

于 2013-02-25T09:42:16.263 に答える