• ベストアンサー

Javaの型や型変換について

Javaの型や型変換についてお聞きします。 HashMap a = new HasMap(); a.put("A", "a"); a.put("B", "b"); で、a.get("A");とすると、 "a"となりますが、 String key = "A"; a.get(key);とすると、引数がObject型でないというコンパイルエラーになります。 どのように対処すればよいのでしょうか? このようにJavaの型・型変換について詳しく書かれている(その項目について)書籍を探しています。Java素人なので、理解しやすい本を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

/** SJC-P本なら、どれでも詳しいと思う。(っていうか、詳しく理解しておかないと、問題が解けませんから・・。) */ public class Mappuppu{  static public void main(String[] _$){   java.util.HashMap a = new java.util.HashMap();   a.put("A", "a");   a.put("B", "b");   String key = "A";   a.get(key); // この記述自体は、問題無し。コンパイルも通る。(JDK5)   System.out.println(a.get(key)); //「互換性のない型」で、怒られる。 //  String a_out = a.get(key);   String a_out = (String)a.get(key); // String型でキャスト。   System.out.println(a_out);   Object o_out = a.get(key);   System.out.println(o_out.toString()); // toString()は無くても、勝手に付け足してくれる。  } }

参考URL:
http://www.techscore.com/tech/J2SE/Utility/4.html
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.3

> a.get(key);とすると、引数がObject型でないとい > うコンパイルエラーになります。 そりゃあないよ。コードを見せて。

すると、全ての回答が全文表示されます。
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.2

ジェネリックなバージョン HaspMap<K,V> を使ったほうがよいでしょう。

すると、全ての回答が全文表示されます。
  • auty
  • ベストアンサー率58% (284/486)
回答No.1

String key = "A"; System.out.println(a.get(key)); なら問題ありません。他に間違いがありそうです。

すると、全ての回答が全文表示されます。

関連するQ&A