Ich habe eine Frage zu den Best Practices im Umgang mit Enums in Java. Lassen Sie uns sagen, dass ich eine Java-Klasse und eine ENUM-Klasse wie folgt:Best Practices für Java-Enum-Initialisierung
public class Foo {
private final FooEnum fooEnum;
public Foo(FooEnum fooEnum) {
this.fooEnum = fooEnum;
}
public Foo(String fooEnum) {
this.fooEnum = FooEnum.valueOf(fooEnum);
}
}
public enum FooEnum {
FOO1,
FOO2,
FOO3
}
Meine Frage lautet: Ist es als gute Praxis, einen zweiten Konstruktor zu bieten, die in einem String führt den Enum zu initialisieren, so kann der Benutzer wählen Entweder ein Enum übergeben oder es entspricht String? Wenn nicht, was ist die Alternative? Sollte der Benutzer für die Umwandlung der Zeichenfolge in eine Enum verantwortlich sein?
Wenn Sie den Zeichenfolgenkonstruktor bereitstellen, verlieren Sie die _type-safety_, die mit Enums geliefert wird. Sie sollten keine Zeichenfolgen in Ihrer Anwendung/Geschäftslogik verwenden müssen. Die Umwandlung von Zeichenfolgen/enums muss nur erfolgen, wenn Sie Daten konvertieren, die von der Benutzeroberfläche oder der Datenbank stammen. –