Ich habe eine Methode, auf der ich eine enum als Parameter übergeben muss.Wie man einen Methodenparameter als enum deklariert
public <T> T doSomething(SomeEnum operation, Class<T> something);
Ich habe mehrere enums und das Verfahren ist ein allgemeines, die mit irgendwelchen enums funktionieren sollte. Wie kann diese Methodensignatur korrekt geschrieben werden, um generische Aufzählungstypen zu akzeptieren? Ich weiß, dass ich eine Marker-Schnittstelle zu diesem Zweck verwenden kann, aber ich möchte es mit generischen Enum-Signaturen schreiben. Bitte teilen Sie mir dies mit.
Was ist die schlechte Idee mit dem folgenden: (Es funktioniert, aber ich bekomme Warnungen von der IDE sagen, es ist ein roher Typ. Ich bin nicht klar über den Grund).
public void doSomething(Enum operation);
Das ist der Weg zu gehen. Siehe auch EnumSet für ein Beispiel in Aktion: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/EnumSet.html – Zarkonnen
Hallo, Danke für die Antwort, aber ich konnte nicht t Fügen Sie diesen Teil hinzu, da er sich erneut über Signaturprobleme beschwert. Es tut mir leid, dass ich die genaue Signatur gepostet habe, die ich suche. Bitte beachten Sie meine Bearbeitung der bestehenden Methodensignatur, zu der ich hinzufügen muss, was Sie erwähnt haben. Wie sieht die Methodensignatur in diesem Fall aus? – popcoder
Ist das wonach Sie suchen? oder T und die enum sollten getrennte Typen sein? –