以下の例では、<Integer,Integer>
の新しく作成されたHashMap
を参照する汎用の参照hm
を作成しようとしました。しかし、たとえ私が文字列の値をhm
参照を使って追加しても、それは許されています。例えば、refがある場合。 hm1
は、コンパイル時にエラーをスローしています。 オブジェクト宣言での汎用宣言の使用方法(例:HashMap <Integer、Integer>)
HashMap hm = new HashMap<Integer,Integer>();
hm.put("hello", "HashMap"); // why it is allowing even if the object created passed <Integer,Integer> else what is significance of <Integer,Integer> on object declaration
HashMap <Integer,Integer> hm1;
hm1 = hm;
hm1.put("adfasf", "adff"); // throws error
は、だから私の質問は、なぜ要素作成されたオブジェクトが渡された場合でも、異なるデータ型を有するを追加できるようにされている他の
<Integer,Integer>
オブジェクトの宣言に
<Integer,Integer>
の意義は何ですか?
あなたの質問には、テキストエリアの右側に大きいオレンジ色**の書式設定**ボックスがあり、そこに有益な情報があります。また、書式設定支援ツールバー全体がありました。 ** [?] **ボタンを押すと書式設定のヘルプが表示されます。 *また、テキストエリアと投稿の質問ボタンの間にあるプレビューエリア(ボタンを見つけるために過去にスクロールする必要があるため、あなたがそれを見てみることを推奨します) 。あなたの投稿をはっきりさせ、時間を割いていることを実証することで、良い答えを得る機会が増えます。 –
生の型にキャストしているので、すべてのジェネリックが失われます。 – 4castle
'HashMap hm;' - 参照型はありません。 –