In Java ist es möglich, erstellen Sie eine Typ-sichere Anzeigen von Klassen, um Instanzen Ihrer Klasse?

Ich würde gerne eine Karte erstellen, die verwendet eine Klasse als Schlüssel, um eine Instanz der Klasse. So etwas wie:

<T> Map< Class<T>, T > instanceMap = new HashMap< Class<T>, T > ();
instanceMap.put( Boolean.class, Boolean.TRUE );
instanceMap.put( String.class, "asdf" );   
instanceMap.put( Integer.class, 11 );

Boolean b = instanceMap.get( Boolean.class );
Integer i = instanceMap.get( Integer.class );
String s  = instanceMap.get( String.class  );

Ist das möglich? Ich habe das Gefühl, dass, Nein, es ist nicht, weil ich nicht darauf hinweisen, dass T gemeint ist ein generischer Typ, anstatt eine Klasse mit dem Namen "T". Es fühlt sich irgendwie wie "higher-order-Generika".

EDIT: ich weiß, ich könnte versuchen, erweitern die Karte und die Umsetzung eigener wrapper etc, aber ich bin speziell Fragen über das tun dies nur mit der Verwendung von Java ist die generelle Unterstützung. Ich bin mehr daran interessiert, die Idee, anstatt diesem speziellen Fall.

EDIT 2: Wie bereits unten beschrieben, ist dies eine doppelte (oder mehr speziell ein subcase) Frage: Java-Karte mit Werten begrenzt durch key-type-parameter . Hatte ich in der Lage zu finden Formulierungen, wie eloquent wie hätte ich wahrscheinlich gefunden, dass Antwort und nicht gepostet.

  • Könnten Sie speichern nur einen Wert pro Klasse (key)?
  • Ja, dies würde verwendet werden, ein Zugriff auf DAOs, wo Sie wollen nur eine dao-pro dao-Typ.
InformationsquelleAutor Tobogganski | 2011-07-22
Schreibe einen Kommentar