- (String、Object)hashMapを作成し、さまざまな型の値を設定します。
- 私はキー「KEY2」の値を取得しようとすると、それは、例外と言って」例外がスローされます
JSON文字列にハッシュマップをシリアライズして(文字列、文字列)のハッシュマップに戻す変換スレッド "main" java.lang.ClassCastException:java.lang.Integerはjava.lang.Stringにキャストできません "。<String、String>ハッシュマップの整数オブジェクト
これを説明する良い方法はありますか?私は(文字列、文字列)のマップを持っていますが、その中の値は必要な文字列ではないという意味ですか?
混乱をお詫び申し上げます。何かが明確でない場合は教えてください。この行で
Map<String, Object> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", 99);
map.put("key3", new Date());
JsonUtil jsonUtil = new JsonUtil();
String s = jsonUtil.toJson(map);
HashMap<String, String> newMap = jsonUtil.fromJson(s, HashMap.class);
String value = newMap.get("key2");
ポスト全体を太字にすると、大胆さが無意味になります。 – ChiefTwoPencils
すべてのコンパイラの警告を有効にすることをお勧めします(注釈を付けて警告を抑制しないでください)。これらの警告のうちの1つが、これが起こるとあなたに語ったでしょう。 – VGR
@VGRおそらく、これは、引数HashMap.classが型リテラル(*)として必要ですが、汎用パラメータを取ることができない奇妙なケースです。 – chrylis