48 Stimmen

Java: Objekt in Array-Typ umwandeln

Ich verwende einen Webdienst, der ein einfaches Objekt vom Typ "Object" zurückgibt. Debug zeigt deutlich, dass es eine Art von Array in diesem Objekt gibt, so dass ich mich frage, wie ich dieses "Object" in ein Array (oder ähnlich) umwandeln kann?

Ich habe Folgendes versucht:

Collection<String> arr = (Collection<String>) values;
Vector<String> arr = (Vector<String>) values;
ArrayList<String> arr = (ArrayList<String>) values;

Aber nichts funktionierte. Ich bekomme immer eine InvocationTargetException.

Was mache ich falsch?

bearbeiten :

Leider musste ich den Link zu dem Bild, das die Ausgabe des Eclipse-Debuggers zeigte, entfernen, da er nicht mehr verfügbar war. Bitte wundern Sie sich nicht, wenn in den Antworten ein Bild erwähnt wird, das nicht mehr vorhanden ist.

58voto

gustafc Punkte 27673

あなたの values Objekt ist offensichtlich ein Object[] mit einer String[] die die Werte enthalten.

String[] stringValues = (String[])values[0];

27voto

Jon Skeet Punkte 1325502

Was Sie haben (nach dem Debug-Bild) ist ein Objekt-Array, das ein String-Array enthält. Sie brauchen also etwas wie:

Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];

Sie haben nicht gezeigt, dass Sie die Art von values - wenn dies bereits Object[] dann könnten Sie einfach (String[])values[0] .

Natürlich auch mit der Besetzung der Object[] Sie könnten es immer noch in einer einzigen Anweisung tun, aber das ist hässlich:

String[] strings = (String[]) ((Object[])values)[0];

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X