Datentypen Object in 2-dimensionales String Array zurückwandeln

Kosta.Kos

Mitglied
Hallo Devs,

ich habe eine Frage bezüglich Object to 2d String Array cast.
Ich habe ein 2-dimensionales-String Array an eine Variablre mit dem Typ Object übergeben.
An anderer Stelle möchte ich es wieder zu einem 2d String umwandeln. Leider klappt das casten nicht.


-->object = str2darray

..
..

--> str2darray = (String [][]) object;

Ich habe keine Ahnung warum es nicht geht.

Grüße
Kosta
 

faetzminator

Gesperrter Benutzer
Na dann wird dann wohl zu diesem Zeitpunkt kein [c]String[][][/c] in [c]object[/c] sein. Etwas Code (am Besten ein KSKB) wär da hilfreich für uns. Oder aber du gehst selbst schnell mit dem Debugger durch und merkst was drin ist, und kannst dadurch assoziieren, was das Problem ist.
 

nrg

Top Contributor
du kannst nicht einfach jedes als Object[][] deklariertes Array in ein String[][] casten. Es ist wichtig, welches Objekt sich im endeffet dahinter verbirgt.

Java:
    public static void main (String[]args){
    	// funktioniert
    	Object[][] obj = new String[0][0];
    	String[][] objCasted = (String[][])obj;
    	
    	// funktioniert nicht
    	Object[][] obj2 = new Object[0][0];
    	String[][] objCasted2 = (String[][])obj2;
    }
 

Kosta.Kos

Mitglied
Hi,
danke für die schnellen Anworten.
Also ich habe ein:

public String [][]xmlArray = new String [20][20];

Dieses wird mit Strings gefüllt. Anschließend rufe ich:

Object object = (Object) xmlArray;

Wenn ich nun Debugge und mir den Inhalt von object ansehen möchte kommt die Fehlermeldung:

'JDI thread evaluations' has encountered a problem.
Exception processing async thread queue

Die ClassCastException tritt also nicht mehr auf.
Ich probiere übrigens ein 2D String Array in ein ganz normales Object zu schreiben und nicht in ein Object[][].
Kann es sein, dass das nicht geht?

Gruß
Kosta.
 

faetzminator

Gesperrter Benutzer
[c]Object[][][/c] <-> [c]String[][][/c] würde IMHO sowieso nicht funktionieren. Arrays sind etwas tricky (und sche*sse und (meist) unnütz) in Java. Nach Möglichkeit solltest du Listen (oder sonstige Collections) verwenden. Aber warum hast du überhaupt den Fall, dass du etwas casten musst?
 
Zuletzt bearbeitet:

Kosta.Kos

Mitglied
Hintergrund ist der, dass ich z.Z. Android entwickle und das 2d String array an eine neue Klasse bzw. Activity übergeben möchte.
Daten übergeben kann man mit so genannten Intents und Bundles. Leider gibt es nur die Standartmethoden für int[] , String[], aber nicht für String[][]. Deshalb wollte ich das 2D Array Serializeable bzw. Parcelable machen. In der neuen Klasse wollte ich dann wieer de-serialisieren. Auch in den Methoden von Parcelable kann ich das 2D String Array nicht übertragen bzw. 'Parcelablen', deshalb wollte ich es in ein Object umwandeln und später beim Empfänger wieder in ein 2D String Array umwandeln. (Ich hoffe , das war jetzt einigermaßen verständlich)

Gruß
Kosta
 

faetzminator

Gesperrter Benutzer
Ach so, ja dann muss man es natürlich so machen. Hab ich mir fast gedacht. Aber eben: Wo es geht mit Lists, Maps, Sets etc und Generics arbeiten :)
 

Kosta.Kos

Mitglied
Wenn ich es nun 'Parcelablen' lasse und dann debugge, bekomme ich wirklich ein Object mit dem 2d Inhalt den ich haben möchte.
Nur kann ich es leider nicht mehr zu einem String[][] casten.
 

nrg

Top Contributor
du könntest dir dafür vllt eine Methode schreiben:
Java:
    public static String[][] objectToStringArray(Object[][] obj) {
    	String[][] str = new String[obj.length][];
    	for (int i = 0; i < obj.length; i++) {
    		str[i] = new String[obj[i].length];
    		for (int j = 0; j < obj[i].length; j++) {
    			str[i][j] = obj[i][j].toString();
    		}
    	}
    	return str;
    }
 

Kosta.Kos

Mitglied
wirklich komisch ist, dass

Java:
 String str = object[0][1]
immer den Fehler: The type of expression must be an array type but it resolved to Object.
Zur Laufzeit stehen in object aber die Daten bzw. sind 2 dimensionen enthalten.
Ich verstehe das echt nicht...
 

Kosta.Kos

Mitglied
Eine andere Möglichkeit wäre es nicht Parcelable zu nutzen sondern Serializeable.
Könnte mir jemand kurz zeigen, wie ich ein 2-dimensionales-String-Array serialisiere und de-serialisiere?

Gruß
Kosta
 

andiv

Bekanntes Mitglied
Ich würde mal sagen du machst was falsch, aber ohne deinen Code zu kennen kann man dir halt schlecht helfen. Folgendes funktioniert nämlich ohne Probleme.

Java:
import java.util.Arrays;

public class Test {
	public static void main(String[] args) {	
		String[][] stringArray = { 
				{"A", "B", "C"},
				{"D", "E", "F"},
				{"G", "H", "I"}
		};
		doSomething(stringArray);
	}
	
	private static void doSomething(Object object) {
		String[][] magic = (String[][])object;
		System.out.println(Arrays.deepToString(magic));
	}
}
 

Kosta.Kos

Mitglied
Hi,

ich habe gerade deine Methode getestet mit einem anderen String[][] Array (TEST-ARRAY).
Die doSomething() funktioniert bei mir auch problemlos, also muss irgendetwas auf dem Weg dahin falsch laufen. Wenn ich den Fehler habe, melde ich mich direkt.

Übergangsweise habe ich mir einfach eine statische Speicherklasse gemacht, die die Werte speichert und für die andere Klasse wieder liefert. Ich finde jedoch, dass das schlechter Stil ist. Werde also nochmal nach dem oben genannten Problem suchen.

Danke euch für die Hilfe.

Kosta
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
thobren Object[][] Java Basics - Anfänger-Themen 8
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
G Java Object value und entity? Java Basics - Anfänger-Themen 2
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Zugreifen auf Object[] Java Basics - Anfänger-Themen 4
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
A Object to Map Java Basics - Anfänger-Themen 2
D Object in ArrayList ausgeben Java Basics - Anfänger-Themen 24
L Input/Output Datei Object aus resources Java Basics - Anfänger-Themen 1
T HashSet in List-Object Java Basics - Anfänger-Themen 5
H Datentypen for(typ a : b) nur typ Object möglich ? Java Basics - Anfänger-Themen 2
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
T Object zu Char zu String Java Basics - Anfänger-Themen 6
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
F Methoden Object.clone() Java Basics - Anfänger-Themen 1
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
F Unique Object Java Basics - Anfänger-Themen 3
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
O Object Java Basics - Anfänger-Themen 4
O nullpointerExce. Gui Object weitergabe Java Basics - Anfänger-Themen 12
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
J Object bestimmter Klasse Java Basics - Anfänger-Themen 3
F Object mit zwei Entities Java Basics - Anfänger-Themen 3
B Map, basic types & Object Java Basics - Anfänger-Themen 5
P Auf Object in Array Methode anwanden Java Basics - Anfänger-Themen 2
S Object Array Length via Konstruktor Java Basics - Anfänger-Themen 5
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
V Object in double? Java Basics - Anfänger-Themen 3
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
N Object mit String ansprechen Java Basics - Anfänger-Themen 7
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
B func(Object ....args) korrekt weitergeben Java Basics - Anfänger-Themen 4
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
T Input/Output Object Streams Java Basics - Anfänger-Themen 6
T Object[][] to String[][] Java Basics - Anfänger-Themen 8
T Object in Array Java Basics - Anfänger-Themen 3
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5
H Object an methode Java Basics - Anfänger-Themen 4
D Object -> String Java Basics - Anfänger-Themen 6
W Compiler-Fehler "Could not reserve enough space for object heap"... und dann raucht das Programm ab Java Basics - Anfänger-Themen 3
D Datentyp Object Java Basics - Anfänger-Themen 2
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
L Datentypen Object zu double zu int konvertieren Java Basics - Anfänger-Themen 6
M String to Object Java Basics - Anfänger-Themen 15
S Object Initialisierung Java Basics - Anfänger-Themen 7
H Object in einem .jar-File einlesen Java Basics - Anfänger-Themen 3
D Object oder Primitiv Java Basics - Anfänger-Themen 10
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
W Main-method in Object-classes Java Basics - Anfänger-Themen 5
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
E Equals-Methode auf Class-Object Java Basics - Anfänger-Themen 17
C Typen aus List<Object[]> ändern Java Basics - Anfänger-Themen 7
C JComboBox setSelectedItem(Object) Problem Java Basics - Anfänger-Themen 5
B Methoden object = this; Java Basics - Anfänger-Themen 4
S Object Member<T> Klasse Java Basics - Anfänger-Themen 5
M Methode von einem Object überschreiben Java Basics - Anfänger-Themen 5
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
M Variablen dynamisch variableninhalt von Object auslesen Java Basics - Anfänger-Themen 4
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
R ArrayList(int index, Object) funktioniert nicht korrekt? Java Basics - Anfänger-Themen 7
C Bereits geöffnetes Object ermitteln Java Basics - Anfänger-Themen 5
N HashMap<String, Object> bei jre4 Java Basics - Anfänger-Themen 3
M object cast auf double Java Basics - Anfänger-Themen 2
D Aus Object auslesen Java Basics - Anfänger-Themen 2
P Java Object das eine HTML Datei repräsentiert Java Basics - Anfänger-Themen 19
C mehrdimensionales Object sortieren Java Basics - Anfänger-Themen 4
T Aus object Array Double Werte ziehen Java Basics - Anfänger-Themen 10
T List.add(Object) führt zu NullPointerException Java Basics - Anfänger-Themen 14
F Wie kann ein Object[] zu Integer[] umwandeln? Java Basics - Anfänger-Themen 6
O Serialisierung: Object abspeichern und aufrufen Java Basics - Anfänger-Themen 6
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
Ollek Collections ArrayList Object - Attribut von dem Object vergleichen Java Basics - Anfänger-Themen 7
C Vector<Object> Probleme Java Basics - Anfänger-Themen 38
B Object an Server senden, Server antwortet mit objekt? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben