Wie deklariert man eine typisierte Klasse in Java? [Duplikat]

8

Ich muss eine Instanz von Map.class deklarieren, aber die Map wird getippt ... Also brauche ich etwas wie folgt:

%Vor%

Diese Zeile verursacht einen Kompilierungsfehler. Was ist der saubere Weg dies auszudrücken?

    
Martin 29.10.2015, 10:24
quelle

3 Antworten

4

Sie können es mit Abgüssen tun.

%Vor%

Dies erzeugt eine Warnung, kompiliert aber.

Das Problem dabei ist, dass sich das resultierende Objekt zur Laufzeit aufgrund von Typlöschung nicht von Map.class unterscheidet (es weiß nichts über den Typ).

Wenn Sie ein Objekt benötigen, das wirklich Map<String, String> darstellt, können Sie sich mit java.lang.reflect.Type oder Guavas TypeToken befassen.

    
Paul Boddington 29.10.2015, 10:44
quelle
2
%Vor%

wird gedruckt

  

Schnittstelle java.util.Map

    
Tahar Bakir 29.10.2015 10:31
quelle
0
%Vor%

Denken Sie daran, dass Map eine Schnittstelle ist, die nicht direkt instanziierbar ist, sondern nur über eine Klasse, die sie implementiert, wie HashMap oder TreeMap

    
morels 29.10.2015 10:29
quelle

Tags und Links