Ich versuche pass Klasse als Wert in hashmap. Ich muss die Klasse (Wert) mithilfe eines bestimmten Schlüssels abrufen und ein Objekt für die abgerufene Klasse instanziieren. aber um ein Objekt zu erzeugen, muss ich Parameter übergeben.Übergeben Klasse in Hashmap und wie man den Wert mit Schlüssel
Mein Ablauf geht hier, wenn ich die getExpo-Methode von einer anderen Klasse den Schlüsselwert übergeben. Mit dem Schlüsselwert muss ich die richtige Klasse erhalten und diese Klasse muss das Objekt instanziieren und das Objekt zurückgeben. Um ein Objekt zu erzeugen, muss ich die Argumente übergeben, da die Klasse keine Standardkonstruktoren hat.
Der Zweck dieses Verfahrens in Zukunft, ich brauche einen anderen Schlüssel, Paar Mehrwert zu schaffen, i shouldnot jede Änderung tun ........ die Umsetzung ist für alle Arten gleichen, dh die Erstellung des Objekts
Meine Klasse geht hier
public class ExampleFactory {
static {
HashMap<String,Class<?>> hmap = new HashMap<String,Class<?>>();
hmap.put("jxpath", JXPathExpression.class);
hmap.put("spel", SpelExpression.class);
}
public Predicate getExpo(String key,String expression) {
// Need to get the class using key value and instantiate the object for the class
// but i need to pass parameters in order to create the object.something like this
//JXPathExpression object = new JXPathExpression(expression);
return null;
}
}
Dank für Ihre Antwort danken ....... wenn ich es in der Methode getEcho implementieren .... Klasse aClass = hmap.get (Schlüssel); bekomme einen Fehler in hmap, da ich hashmap im statischen Block implementiert habe, kann ich nicht darauf zugreifen. – Jessie
Ich brauche eine andere Hilfe ....... für einige Klassen muss ich zwei Argumente übergeben zB: (String, Klasse > Typ) zB: (Ausdruck, Boolean.class), wie man es implementiert? und wie man wählt, welcher Konstruktor ausgeführt wird ... eine Klasse hat nur ein Argument mit String ....... eine andere Klasse hat zwei Argumente String und Klasse > – Jessie
http://java.sun.com/developer/technicalArticles/ ALT/Reflexion / – Luca