by Anonymous » 14 Jul 2025, 15:34
Ich habe eine riesige Aufzählung mit Werten, die sowohl allgemein als auch domänenspezifisch sind.
Ich möchte die Aufzählung in zwei Enums aufteilen, sie Commonfoo und Domainfoo nennen. Ich fand, dass, wenn ich eine einfache Schnittstelle erstelle, beide Enums von der Schnittstelle erben können und ich der Benutzeroberfläche Enum zuweisen kann. Gleichstellungsüberprüfungen scheinen auch richtig zu funktionieren. Und das ist wirklich alles, wofür ich die Aufenträger brauche. Meine Frage ist: Ist das sicher? Bin ich mich für zukünftiges Versagen vor, indem ich diesen Auflauf wiederherstellen kann? Also habe ich Folgendes definiert: < /p>
Code: Select all
public interface Foo {
String name();
}
public enum CommonFoo implements Foo {
B
}
public enum DomainFoo implements Foo {
B
}
Und ich fanden heraus, dass Gleichheit und Ungleichheit immer noch funktionieren, ebenso wie die Methode .Name () . Aber ist das in allen Fällen sicher? if (foo == commonfoo.b) ...
Ausgabe der enum in Protokolldateien. Ich verwende die Methode .Name () , um die Enum auszugeben. Ich weiß, wenn ich versehentlich zwei Enums mit demselben Namen benannte, wie B oben, unterscheidet das Protokoll nicht, welches es ist. Das ist für mich akzeptabel. logger.info ("ausführen" + foo.name ()); < /code> < /li>
< /ul>
Dinge, die ich nicht tun möchte: < /p>
Serialise das Enum. Wenn ich diesen Trick mit Enums benutze, kann ich die gewünschten Aktionen ausführen. Wenn ich die unerwünschten Aktionen versuche, werden sie fehlschlagen. und 2) Gibt es andere Aktionen, die funktionieren oder nicht?
Ich möchte einige Zusicherungen haben, um mich zu unterstützen, wenn ich die Änderung vorschlage.
Ich habe eine riesige Aufzählung mit Werten, die sowohl allgemein als auch domänenspezifisch sind. [url=viewtopic.php?t=14917]Ich möchte[/url] die Aufzählung in zwei Enums aufteilen, sie Commonfoo und Domainfoo nennen. Ich fand, dass, wenn ich eine einfache Schnittstelle erstelle, beide Enums von der Schnittstelle erben können und ich der Benutzeroberfläche Enum zuweisen kann. Gleichstellungsüberprüfungen scheinen auch richtig zu funktionieren. Und das ist wirklich alles, wofür ich die Aufenträger brauche. Meine Frage ist: Ist das sicher? Bin ich mich für zukünftiges Versagen vor, indem ich diesen Auflauf wiederherstellen kann? Also habe ich Folgendes definiert: < /p>
[code]public interface Foo {
String name();
}
public enum CommonFoo implements Foo {
B
}
public enum DomainFoo implements Foo {
B
}
[/code]
Und ich fanden heraus, dass Gleichheit und Ungleichheit immer noch funktionieren, ebenso wie die Methode .Name () . Aber ist das in allen Fällen sicher? if (foo == commonfoo.b) ...
Ausgabe der enum in Protokolldateien. Ich verwende die Methode .Name () , um die Enum auszugeben. Ich weiß, wenn ich versehentlich zwei Enums mit demselben Namen benannte, wie B oben, unterscheidet das Protokoll nicht, welches es ist. Das ist für mich akzeptabel. logger.info ("ausführen" + foo.name ()); < /code> < /li>
< /ul>
Dinge, die ich nicht tun möchte: < /p>
Serialise das Enum. Wenn ich diesen Trick mit Enums benutze, kann ich die gewünschten Aktionen ausführen. Wenn ich die unerwünschten Aktionen versuche, werden sie fehlschlagen. und 2) Gibt es andere Aktionen, die funktionieren oder nicht? [url=viewtopic.php?t=14917]Ich möchte[/url] einige Zusicherungen haben, um mich zu unterstützen, wenn ich die Änderung vorschlage.