Я хочу перебирать HashMap.HashMap ClassCastException String для MyClass
public void setMyHashMap(final String key,
final HashMap<Integer, MyClass> value) throws NullPointerException{
settings.put(key, value);
}
public HashMap<Integer, MyClass> getMyHashMap(String key) {
return (HashMap<Integer, MyClass>) settings.get(key);
}
------------------------------------------------------------
for (Map.Entry<Integer, MyClass> e : settings.getMyHashMap(key)
.entrySet()) {
System.out.println(e.getValue());
}
Это отображает ссылку на объект MyClass, как «MyClass @ 9d5f8e»
for (Map.Entry<Integer, MyClass> e : settings.getMyHashMap()
.entrySet()) {
System.out.println(e.getValue().getLabel());
}
Но как только я хочу, чтобы получить доступ к данным этого объекта, он получает отлиты к MyClass, который должен хорошо, но нет. Кажется, что если объект на самом деле строка, как я получаю это исключение:
java.lang.ClassCastException: java.lang.String не может быть приведен к MyClass
Я не понимаю. Я передаю HashMap несколько раз, и SettingsClass без проблем запускает сохраненный объект в HashMap. Если я напечатаю значение, я получаю ссылку на MyClass, но как только я хочу получить доступ к данным, JRE считает, что это объект String.
'System.out.println (e.getValue(). GetClass()); '? – immibis
подробнее о вашем кодовом коде – codeaholicguy
Ваша карта 'settings', вероятно, имеет значения типов карт типа« HashMap ». –
Codebender