dポイントプレゼントキャンペーン実施中!

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素人なので、理解しやすい本を教えてください。

A 回答 (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
    • good
    • 0

> a.get(key);とすると、引数がObject型でないとい


> うコンパイルエラーになります。
そりゃあないよ。コードを見せて。
    • good
    • 0

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

    • good
    • 0

String key = "A";


System.out.println(a.get(key));

なら問題ありません。他に間違いがありそうです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!