Enum? erweitert die Schnittstelle

7

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:)

    
Khanmots 10.08.2012, 21:35
quelle

2 Antworten

1

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.

    
Mike Deck 10.08.2012, 22:20
quelle
18

Das bedeutet, dass T Enum erweitert und Fooable implementiert:

%Vor%

So kann Ihre Methode geschrieben werden als:

%Vor%     
Håvard Geithus 10.08.2012 21:55
quelle