MichiLee: Objekt in Long, String oder Integer parsen

Beitrag lesen

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