Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
LinkedHashMap<beliebige enum wie definierbar, String>
Das ist doch schon eine bessere Problembeschreibung!
Wildcards kannst du beim Erzeugen des konkreten Objekts nicht benutzen (auf der rechten Seite des =), nur bei der Typdefinition (linke Seite).
Probier es mal so:
Code:
Map<Enum<?>,String> m = new HashMap<Enum<?>,String>();
Das ist doch schon eine bessere Problembeschreibung!
Wildcards kannst du beim Erzeugen des konkreten Objekts nicht benutzen (auf der rechten Seite des =), nur bei der Typdefinition (linke Seite).
Probier es mal so:
Code:
Map<Enum<?>,String> m = new HashMap<Enum<?>,String>();
Danke cool. Aber jetzt steh ich schon wieder vor einem Problem das glaube ich nicht loesbar ist: Obwohl man ja eigentlich Enums in einer Annotation definieren kann, ist das leider nicht mit einem beliebigen Enum moeglich
Code:
public @interface MapEntry {
Enum<?> key();
String value();
}
Oder gibt es auch dafuer eine Loesung?
Die Annotation sieht spaeter so aus:
@MapEntry(key=ein_Enum, value="ein String")
Das klappt wohl nicht...weiss jemand warum das nicht erlaubt wurde, da ja Enums erlaubt sind.
Man kann eine Enum innerhalb der Annotation definieren:
Code:
public @interface MapEntry {
public enum Key {
EINS, ZWEI, DREI
};
Key key();
String value();
}
Soweit ich weiß, kann man keine allgemeine Enum verwenden, da die Annotation ja nicht
erzeugt wird wie ein Objekt und man keinen Typparameter angeben kann.
Man kann eine Enum innerhalb der Annotation definieren:
Code:
public @interface MapEntry {
public enum Key {
EINS, ZWEI, DREI
};
Key key();
String value();
}
Soweit ich weiß, kann man keine allgemeine Enum verwenden, da die Annotation ja nicht
erzeugt wird wie ein Objekt und man keinen Typparameter angeben kann.
Schade. Wie in deinem Beispiel oben kannte ich das ja. Komisch, dass es nicht sowas wie EnumType gibt das Java signalisiert, dass hier ein beliebiges Enum stehen kann.