Variable als Instanzenname

I

Inka77

Ich habe aus einer xml Datei mit einem Java Parser ein DOM Dokument erzeugt und versuche jetzt den Dokument Baum auf eine Java Objektstruktur abzubilden. Dazu muss ich den Klassennamen und den Instanzennamen bei new oder newInstance beide aus Daten im Baum als Variable setzen können. Es kommen nur Klassennamen einer Klassenbibliothek vor.
Objekte von beliebigen Klassen dynamisch zu erzeugen habe ich mit Class.forName und get.Constructor geschafft, aber nur mit statischen Objektnamen. Der dynamische Methodenaufruf über Variable klappt auch. Wie kann ich Variable als Objektnamen verwenden?
 
Pack sie in ne Map:

Java:
Map<String,Object> objectMap = new HashMap<String,Object>();
objectMap.put("objectName", object);

Kommt aber drauf an was du dann damit machen willst.
 
Vielen Dank für die schnelle Antwort mit der Lösung für mein Problem. Jetzt kann ich wieder ruhiger schlafen. Hier ein Testfile wie ich deinen Lösungstipp nutze. hat du noch Ideen, ob das einfacher geht?

import java.lang.Class;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.*;

public class TestCs3 {
public static void main(String[] args) throws Exception {
Map<String, Class> classMap = new HashMap<String, Class>();
Map<String, Object> objectMap = new HashMap<String, Object>();
Map<String, Method> methodMap = new HashMap<String, Method>();

String className = "C1";
String objectName = "o1";
String methodName = "setString";

classMap.put(className,Class.forName(className));
objectMap.put(objectName,classMap.get(className).getConstructor().newInstance());
methodMap.put(methodName,classMap.get(className).getMethod(methodName));
System.out.println(methodMap.get(methodName).invoke(objectMap.get(objectName)));
}
}
 
Zurück