Ich habe ein enum wie das folgende, aber Eclipse sagt, dass es in der ersten Definition jedes entgegengesetzten Paares Fehler gibt.
%Vor% Was ich erreichen möchte, ist Baz.something.opposite
zu verwenden, um das gegenüberliegende Objekt von Baz.something
zu erhalten. Gibt es eine mögliche Problemumgehung dafür? Vielleicht ist in diesem Beispiel ein leerer Platzhalter für yang
und bad
vor yin
und good
definiert?
Sie könnten etwas wie:
versuchen %Vor%und referenzieren Sie es dann als
%Vor%Das sollte erreichen, was Sie tun möchten, indem Sie den Enum-Wert anhand seiner String-Darstellung nachschlagen. Ich denke nicht, dass Sie es mit dem rekursiven Verweis auf Baz arbeiten können.
Jahre später, die kürzeste und hacky Lösung
%Vor%Es beruht auf der Annahme, dass jedes Mitglied ein Gegenteil hat und dass sie paarweise angeordnet sind. Es ersetzt das Feld durch eine Methode in der Hoffnung, dass die JVM den gesamten Overhead optimieren wird. Dies ist auf dem Desktop sinnvoll, auf Android weniger sinnvoll.
Um den Overhead zu eliminieren, könnte ich hier den statischen Initialisierer verwenden wie viele andere Lösungen.
Und noch eine weitere mögliche Implementierung (ähnlich wie bei einigen anderen Lösungen, aber mit einer HashMap).
%Vor%