意味は<E>
コードCollection<E>
にありますか?<E>は、コレクション<E>の意味は何ですか?
答えて
これはジェネリックの使用です。このintroをチェックしてください。そして、それを読むことを忘れないでくださいtutorial。
抜粋は(ジェネリック医薬品の使用に対して、キャストの使用を比較する)、次のとおりです。
あなたがコード<タイプが表示されたら>、 「タイプの」としてそれを読みます。 の宣言は "Collection of String c"と表示されます。 コードはジェネリックスを使用してより明確になり、 より安全です。安全でない のキャストと、追加の のカッコが削除されました。さらに重要なことは、我々は コメントからその 署名に 方法の明細書の一部を移動しているので、コンパイラはタイプ 制約が実行 時に違反していないことをコンパイル時に を確認することができます。プログラムは警告なしで をコンパイルするので、実行時に ClassCastExceptionがスローされないことを確実に確認するには、 と指定できます。特に大きいプログラムで ジェネリックを使用した場合の純効果は、 の可読性と堅牢性が向上しています。
例えば、リストのインタフェースは
public interface List<E> {
void add(E x);
Iterator<E> iterator();
}
である。これは、あなたが持っている場合でも、その内容(Object型のだけではなく)同じ明示的な型のすべてのあるリストを作成できることを意味しますあなた自身でタイプを定義しました。だから、あなたが名前のクラスを作成する場合は、
List<Name> nameList = new List<Name>();
を書くことができ、その後、名前のインスタンスとそれを記入し、直接あなたが常にどちらかの名前を取得しますので、鋳造またはそうでなければ気にすることなく、そこから名前インスタンスを取得しますインスタンスまたはnullバック、決して異なるタイプのインスタンス。
さらに重要なことに、コンパイル時に失敗するため、このようなListにNameインスタンスと異なるものを挿入することはできません。
nameList.add(false); //Fails!
nameList.add(new Name("John","Smith")); //Succeeds supposing Name has a
//firstName, lastName constructor
TがTypeの略語であるかのように 'List Of Type 'として' List
つまり、タイプがE
のアイテムのコレクションを処理しているということです。あなたがお茶を飲んだとしましょう。
class Cup<T> { … }
は今、あなたはどちらかコーヒーまたは紅茶(または何か他のもの)と、それを埋めることができます::
Cup<Tea> cuppa = new Cup<Tea>();
Cup<Coffee> foamee = new Cup<Coffee>();
それは一般的なエンティティとしてカップを記述するために理にかなっているように、代わりにお茶の、それはまた、コーヒーを握ることができます
これを有効にするには、Tea
とCoffee
の両方をプログラムで定義する必要があります。
これは、コードにというコンパイル時の制約です。コレクション(配列、リストなど)は通常、の1つのタイプ、タイプのアイテムを含んでいます。整数または文字列です。ジェネリックスはJavaでこれを表現するのに役立ちます:
Collection<String> strList = new ArrayList<String>();
strList.add("Foobar"); // Works.
strList.add(42); // Compile error!
上記のコンパイルエラーに注目してください。ジェネリックスを使用する場合にのみこれを取得します。次のコードも機能しますが、エラーメッセージは表示されません。
Collection strList = new ArrayList();
strList.add("Foobar"); // Works.
strList.add(42); // Works now. Do we really want this?!
- 1. JavaScriptでタグ<< =の意味は何ですか?
- 2. <<はルビの意味ですか?
- 3. このdatabase.ymlファイルの&、<<、*は何を意味しますか?
- 4. THREE.Camera.prototype.lookAt</ <() -</ <はどういう意味ですか?
- 5. Scalaでは "<:"の意味は何ですか?
- 6. typescriptでは(<typeof className> this.constructor)の意味は何ですか?
- 7. gdbでは<value optimized out>の意味は何ですか?
- 8. Scalaでは<:<が意味することは何ですか?
- 9. List <String> []はjavaの意味は何ですか?
- 10. ノード[TypeOne <:Node [TypeOne]]はスカラーの意味は何ですか?
- 11. このコード行は何を意味していますか? $ channel = <<< _ XML_;
- 12. Excelで<>の意味は何ですか?
- 13. ハスケルで<$>の意味は何ですか?
- 14. Ruby on Railsで<%% =の意味は何ですか?
- 15. Coutでは "<<" and ">>"とは何を意味していますか?
- 16. <Tは何を意味するのですか?
- 17. Javaコンパイラのエラーメッセージ "<identifier>"の意味は何ですか?
- 18. regexp \ k <name+0>の "+0"の意味は何ですか?
- 19. 「<!DOCTYPE people SYSTEM」の意味は何ですか?peopleDTD.dtd ">`?
- 20. "ct"と "lt"(POSIXctとPOSIXlt)の意味は何ですか?
- 21. `struct decay <T、R(A ...、...)>の意味は何ですか?
- 22. Haskell演算子 "<>"の意味は何ですか?
- 23. reinterpret_cast <char *>(&st)と(-1)* static_cast <int>の意味は何ですか?
- 24. <jxb:bindings version =の意味は?
- 25. JavaScriptで '</'は何を意味しますか?
- 26. <++>はgvimで何を意味していますか?
- 27. <?..?>はXMLで何を意味していますか?
- 28. <tag/>はXMLで何を意味していますか?
- 29. <a:theme>はOpenXMLで何を意味していますか?
- 30. オブジェクト<String>はJavaで何を意味しますか?
コレクションをよりよく知るには、あなたの助けが必要です。 – Johanna