Ich versuche, eine Sammlung von Enums zu haben, die eine gemeinsame Schnittstelle erweitern, also etwas wie:
%Vor%und verwenden Sie dies an anderer Stelle, indem Sie beide erzwingen, dass eine Variable Enum ist und die Schnittstelle implementiert. Also etwas in der Art von ..
%Vor%Bisher scheint es jedoch so zu sein, dass ich z. B. festlegen muss, um es als Implementierung der Schnittstelle zu behandeln, d.h.
%Vor%und während dies sicher sein sollte ... scheint es suboptimal zu sein und dass ich etwas übersehen könnte. Natürlich, wenn ich versuche, den Param als Fooable zu übergeben, dann fange ich an, Casting als Enum zu behandeln, und nicht nur das ist kein Gewinn, ich bin jetzt auch nicht sicher. Siehe folgendes:
%Vor%Gibt es irgendetwas, was ich übersehe oder ist das
? %Vor%ungefähr so nah an einer "guten" Lösung, wie ich bekommen werde?
Ich bin relativ neu in Java und fange mich immer noch an, es wie C oder C ++ zu benutzen, also wenn ich es wie einen Hammer anstelle einer Säge behandle oder etwas Dummes einfach übersehe, dann zögere nicht es aufzuzeigen:)
Eine Option, die Sie haben, besteht darin, eine der Methoden aus Enum hinzuzufügen, die Sie in Fooable benötigen, oder eine neue Schnittstelle zu erstellen, die Fooable erweitert und die von Ihnen benötigten Enum-Methoden hinzufügt.
Beispiel:
%Vor% Sobald Sie dies getan haben, können Sie FooableEnum
als Parametertyp in Ihrer Methodensignatur verwenden und sich nicht um generische Dinge kümmern.
Das bedeutet, dass T Enum erweitert und Fooable implementiert:
%Vor%So kann Ihre Methode geschrieben werden als:
%Vor%Tags und Links java enums interface type-constraints