Hallo Forum
ich habe eine Hashtable:
Hashtable<String, Vector<Object>> hashData;
In dem Vector<Object> sind dann meistens Strings drin, auch aber manchmal Datum oder Zahlen.
Ich lese die HashData meist dann so aus:
String tmp = ((String)hashData.get("key").elementAt(0));
Ich erhalte das Objekt an der Stelle 0 vom ObjectVector und caste es in ein String. Funktioniert prima.
String tmp= String birthday =((String)hashData.get("birthday").elementAt(i).toString());
Wenn in dem Object ein Geburtstag drin ist (Was von der Datenbank kam 1980-01-01) muss ich hinten ein toString() anhängen.
Jetzt frage ich mich warum, bzw. was als erstes greift, das toString() hinten oder das Casten vorne?
int tmp = ((Long)hashData.get("key").elementAt(i)).intValue();
Wenn ich nun in dem Object eine Zahl drin habe, geht nur das obere Konstrukt, aber ((Integer)hashData.get("key").elementAt(i)).intValue() geht nicht? (Das irritiert mich auch einwenig. In meinem Beispiel ist da eine 1 drin.
int tmp = Integer.parseInt((String)hashData.get("key").elementAt(0));
ging auch nicht, obwohl da eine 1 drin ist.
Viele Grüße