Ich möchte eine generische Methode schreiben, die einen beschränkten Parameter verwendet, der Enum erweitert. Zum Beispiel, wenn ich eine Enum habe wie folgt:Generische Methode mit Bounded erweitert Enum-Parameter - kann nicht auf values () zugreifen
public enum InputFlags{
ONE (0000001),
TWO (0000002),
THREE (00000004);
public final int value;
InputFlags(int value){
this.value = value;
}
}
kann ich dann wie folgt vor:
for (InputFlags ifg : InputFlags.values()){
// Do something with ifg
}
Allerdings, wenn ich versuche, die oben in einer generischen Methode, deren Rückgabeparameter begrenzt ist, zu tun, ich kann nicht auf die values()
Methode:
public static <T extends Enum> T getFlags(int f){
T.values(); // NOT allowed, even though I have bounded by extending Enum.
}
Es scheint, als ob ich nicht values()
in der generischen Methode zugreifen kann. Ist das eine Besonderheit von Enums oder gibt es einen Weg dahin?
Scheint, wie Sie neu zu erfinden [ 'EnumSet'] (http://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.html). – Holger