Dynamisches Casten mal wieder

mantax

Mitglied
Hi
hab schon oft gelesen, dass dynamisches casten nicht möglich sein soll, aber ich wüsste nicht, wie ich mein Problem sonst lösen könnte.
Ich habe eine XML Datei aus der ich einen Klassenname und Parameter auslese. Nun möchte ich diese Klasse mit eben diesen Parametern erstellen. Dazu verwende ich
Java:
// Parameter
Object[] params = ...;
...
// gibt nur einen konstruktor
Class.forName("tolleklasse").getConstructors()[0].newInstance(params);
Die Parameter hab ich in einem ObjectArray gespeichert, allerdings sind die alle als String intern gespeichert, weil ich sie aus der XML auslese.
Ich komme zwar per
Java:
Class<?>[] typen = Class.forName("tolleklasse").getConstructors()[0].getParameterTypes();
an ein Array der passenden Typen ran, allerding müsste ich an dieser Stelle alle Parameter aus Object[] params in die richtigen Variablentypen aus Class<?>[] typen umwandeln.
Ist das möglich? Wenn ja wie? Wenn nein, hat noch jemand ne Idee wie man das Umgehen kann?
 
S

SlaterB

Gast
z.B.
Java:
String[] rowData = ...; // gefüllt
Object[] dataForContructor = ..;  // noch leer
for (i ... ) {

String row = ..;
Object theObjectWeWant = null;
InformationAboutObject o = ..; // z.B. die Class aus dem Parameter-Array der Methode, vielleicht steht auch im XML der Typ, oder aus dem Format bestimmen
switch(o) { // oder if/else
  case MustBeInteger: 
  theObjectWeWant  = transform to integer;

  case MustBeDate: 
  theObjectWeWant  = transform to date;

  ...
}
dateForContructor [i] = theObjectWeWant ;

}

Casten muss dabei im ganzen Prozess gar nicht unbedingt beteiligt sein
 
Zuletzt bearbeitet von einem Moderator:

mantax

Mitglied
Wenn ich das richtig verstehe, meinst du ich soll nen großen switch/if-else block machen und für jeden möglichen Fall einfach die Umwandlung hardcoden?
hmm schade habs schon befürchtet so machen zu müssen...
oder gehts auch dynamischer? :D
 
S

SlaterB

Gast
Dynamik entsteht nicht aus dem Nichts, erst wenn etwas rollt kann es in Bewegung gehalten werden ;)
wenn Eingabeinformation wie ein bestimmter Objekttyp vorhanden ist, kann dynamisch die passende Methode gewählt werden

aber du beginnst aus dem Stand, mit einem öden String/ Object, da muss man immer langsam anrollen

sicher ginge alternativ
String row = ..;
InformationAboutObject o = ..;
Object theObjectWeWant = o.youKnowWhatToDo(row);

aber dann wäre das if/else in den vielen Information-Klassen verteilt,
was durchaus eine interessante Alternative ist
 
Zuletzt bearbeitet von einem Moderator:

mantax

Mitglied
Vielen Dank!
habe mich für die if-block methode entschieden, weil ich hauptsächlich nur von String in Primitive umwandle und nur ein einziges Mal (glaube ich) in eine neue Klasse umwandle.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Klassen Dynamisches Casten? Java Basics - Anfänger-Themen 39
A Dynamisches casten Java Basics - Anfänger-Themen 19
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
O Schlange als dynamisches Feld - Aufwand Java Basics - Anfänger-Themen 16
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
C Erste Schritte Dynamisches Array Java Basics - Anfänger-Themen 11
T Dynamisches abarbeiten von statischen Methode aus verschiedenen Klassen. Java Basics - Anfänger-Themen 5
X Methoden [GWT] Dynamisches Textfeld PopUp erstellen Java Basics - Anfänger-Themen 6
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
R dynamisches zweidimensionales Feld erzeugen Java Basics - Anfänger-Themen 8
A dynamisches Array - Index Liste Java Basics - Anfänger-Themen 2
maddin86 3 Dateien gleichzeitig speichern in dynamisches Benutzerverzeichnis (Windows) Java Basics - Anfänger-Themen 4
A dynamisches Array simulieren Java Basics - Anfänger-Themen 8
M Dynamisches und statisches binden Java Basics - Anfänger-Themen 17
M Dynamisches Binden Java Basics - Anfänger-Themen 8
M dynamisches Clipboard mit Buttons Java Basics - Anfänger-Themen 5
J Dynamisches/Statisches Binden ?? Java Basics - Anfänger-Themen 5
R dynamisches binden Java Basics - Anfänger-Themen 3
K dynamisches Array Java Basics - Anfänger-Themen 13
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
Bernasconi dynamisches JDialog Java Basics - Anfänger-Themen 2
R Dynamisches Gegenerieren von Objekten Java Basics - Anfänger-Themen 25
P dynamisches Binden klappt nicht so recht Java Basics - Anfänger-Themen 7
S dynamisches array + konstruktor Java Basics - Anfänger-Themen 5
K dynamisches Array erzeugen Java Basics - Anfänger-Themen 5
tom.j85 TicTacToe - probleme beim Casten Java Basics - Anfänger-Themen 6
B Datentypen Welcher Typ wird beim Casten übernommen? Java Basics - Anfänger-Themen 12
G Probleme beim casten von double zu int Java Basics - Anfänger-Themen 3
BuTTerBroTHDx Char Wert in int casten ? Java Basics - Anfänger-Themen 4
A Vererbung Mit Casten direkt auf Sub-Klasse Zugreiffen Java Basics - Anfänger-Themen 6
N Variablen zurück casten Java Basics - Anfänger-Themen 3
F Casten bei Implements Java Basics - Anfänger-Themen 2
S Klassen casten, IS-A Beziehung Java Basics - Anfänger-Themen 5
J Generics casten Java Basics - Anfänger-Themen 14
T Probleme beim casten Java Basics - Anfänger-Themen 9
M Casten Java Basics - Anfänger-Themen 2
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
S Polymorphes Objekt in eigentliche Klasse casten Java Basics - Anfänger-Themen 6
masii Methoden Parameter casten? Java Basics - Anfänger-Themen 2
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
U ArrayList casten Java Basics - Anfänger-Themen 37
F g.drawLine in g 2D casten Java Basics - Anfänger-Themen 5
A Klassen ArrayList richtig / sicher Casten? Java Basics - Anfänger-Themen 3
J Frage zu generischer Klasse und Casten Java Basics - Anfänger-Themen 14
M Frage zum Casten von Objekten Java Basics - Anfänger-Themen 5
M sicheres/unsicheres Casten bei Objekten Java Basics - Anfänger-Themen 13
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
B Casten oder vielleicht was anderes? Java Basics - Anfänger-Themen 9
T Boolean in ein Objektdatentyp casten möglich? Java Basics - Anfänger-Themen 5
J Casten (Typumwandlung) Java Basics - Anfänger-Themen 12
P Casten Hash Map Java Basics - Anfänger-Themen 4
W Auf 'this' casten Java Basics - Anfänger-Themen 3
M casten Java Basics - Anfänger-Themen 11
D Casten eines Objekts: Funktion der Oberklasse aufrufen Java Basics - Anfänger-Themen 4
G Datentypen char to int casten - falsches Ergebnis! Java Basics - Anfänger-Themen 6
S casten array in int von float Java Basics - Anfänger-Themen 5
C Probleme beim casten und Objekt zugriff Java Basics - Anfänger-Themen 12
P Klasse nach Element casten Java Basics - Anfänger-Themen 4
G Double casten Java Basics - Anfänger-Themen 8
O Object nach Double casten Java Basics - Anfänger-Themen 11
L Object[] in String[] casten Java Basics - Anfänger-Themen 7
V Gelesene FTP Datei richtig casten Java Basics - Anfänger-Themen 9
T Properties casten Java Basics - Anfänger-Themen 4
G Arrays casten? Java Basics - Anfänger-Themen 12
G string "null" in null casten Java Basics - Anfänger-Themen 3
M casten und Generics Java Basics - Anfänger-Themen 9
S Objekt Casten Java Basics - Anfänger-Themen 4
G String nach int casten Java Basics - Anfänger-Themen 5
G Vektor auslesen und als int Variable casten Java Basics - Anfänger-Themen 4
G String in Date casten. Java Basics - Anfänger-Themen 7
G String in Date casten Java Basics - Anfänger-Themen 4
G String in Long casten Java Basics - Anfänger-Themen 2
G Object[] [] nach vector casten. Java Basics - Anfänger-Themen 3
G printStackTrace(); in String casten Java Basics - Anfänger-Themen 3
G String in int casten Java Basics - Anfänger-Themen 2
G Integer[] nach int[] casten - wie? Java Basics - Anfänger-Themen 2
D Arrays casten Java Basics - Anfänger-Themen 12
G Casten ? Java Basics - Anfänger-Themen 3
HaukeG Casten to String und Vergleichen Java Basics - Anfänger-Themen 2
G ich komm nicht weiter -> String in int casten Java Basics - Anfänger-Themen 4
T Casten von Choice auf Vector oder Object[] Java Basics - Anfänger-Themen 14
B Vector nach float[] casten Java Basics - Anfänger-Themen 6
G String zu byte[] "casten"? Java Basics - Anfänger-Themen 3
M Hin und Her Casten Object->int und int->Object Java Basics - Anfänger-Themen 3
T Typsicheres casten eines Objects Java Basics - Anfänger-Themen 5
D Object[] in Liste casten? Java Basics - Anfänger-Themen 8
T Chaosprogrammierer hat einen fehler beim casten? Java Basics - Anfänger-Themen 5
J Attribut casten Java Basics - Anfänger-Themen 3
A Array mit generischen Typen casten? Java Basics - Anfänger-Themen 6
C Automatisches Casten => inkompatibel Java Basics - Anfänger-Themen 7
G Byte-Code einlesen und zu Hex casten Java Basics - Anfänger-Themen 2
T Object[] zu String[] casten? Java Basics - Anfänger-Themen 3
R Double nach Integer casten Java Basics - Anfänger-Themen 8
L Adresse in String[] casten Java Basics - Anfänger-Themen 6
M Object auf Interface casten? Geht das? Java Basics - Anfänger-Themen 21
U ArrayLists und Casten Java Basics - Anfänger-Themen 2
O TreeMap nach Object[] casten? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben