[JAVA] Hier ist eine Zusammenfassung dessen, worauf ich in letzter Zeit neugierig war

Einführung

――Das Thema dieser Zeit ist der Titel

Auslösen

――Ich entwickle ein Team und die Leute, die die Informationen in Enum haben, sind je nach Person sehr unterschiedlich ~~ Ich war ein wenig unzufrieden, also versuche ich diesmal, meinen Ärger loszuwerden, indem ich einen Artikel schreibe ~~ Mein Wissen Ich dachte, ich würde es zum Organisieren verwenden.

Code in Frage

――Ich denke, ich werde sofort auf das Hauptthema eingehen, aber zuallererst denke ich, dass der Name der Enum-Konstante im Grunde Kapital + Ansco ist (auch wenn es nicht Enum ist). »Also, ich denke, ich werde es wie unten schreiben.

WeatherEnum.java



public enum WeatherEnum {

    WEATHER_SUNNY("weather_sunny", "sunny"),
    WEATHER_CLOUDY("weather_cloudy", "cloudy")
    ;
    
    private String lowerCase;
    private String shortName;

    //Getter und Konstruktor weggelassen
}

――Ich war neugierig auf die Tatsache, dass es einen Fall gab, in dem der konstante Name alle Kleinbuchstaben als Enum-Informationen enthielt, und ich habe mich persönlich gefragt, was das war.

Der Grund, warum ich interessiert war

――Ich hatte das Gefühl, dass ich nicht viel über Wartbarkeit nachgedacht habe (sowohl der konstante Name als auch der Wert müssen geändert werden). --toString (). ToLowerCase ()

Also was ist passiert ...

――Ich hatte das Gefühl, dass es besser ist, auf der Anruferseite mit LowCase () zu arbeiten, ohne es als Wert zu haben, also habe ich es in diese Richtung besiegt, aber als ich es richtig nachgeschlagen habe, hatte ich das Gefühl, dass ich verschiedene Dinge tun kann. Ich weiß nicht, ob es das Beste ist, aber ich denke, ich werde Ihnen einige Antworten geben (vielleicht wäre es schön, wenn es eine Vereinbarung innerhalb des Teams gäbe).

Vorschlag 1

Vorschlag 2

WeatherEnum.java


public enum WeatherEnum {

    WEATHER_SUNNY("sunny"),
    WEATHER_CLOUDY("cloudy")
    ;

    private String shortName;

    //Getter und Konstruktor weggelassen

    public String getLowerCase() {
        return toString().toLowerCase();
    }
}

Vorschlag 3

--Override toString () ――Ich denke, Sie können den konstanten Namen Enum entweder mit name () oder toString () verwenden, aber ich denke, der Unterschied besteht darin, dass Sie name () nicht überschreiben können und toString (). , OracleDocs ist programmiererfreundlicher als der als konstanter Name definierte. Wenn Sie ein Wort haben, sollten Sie String überschreiben. ―― Wenn Sie also sagen, dass alle Kleinbuchstaben mehr Anwendungsfälle enthalten, bedeutet dies, dass das Überschreiben kein Problem darstellt. ――Personal ist dies die ursprünglich korrekte Verwendung?

WeatherEnum.java


public enum WeatherEnum {

    WEATHER_SUNNY("sunny"),
    WEATHER_CLOUDY("cloudy")
    ;

    private String shortName;

    //Getter und Konstruktor weggelassen

    @Override
    public String toString() {
        return name().toLowerCase();
    }
}

Plan 4 (Bonus)

―― Abschließend ist Plan 3 gut, aber ich habe mir andere Ideen ausgedacht, also schreibe ich es einfach.

HelloInterface.java


public interface HelloInterface {

    String getLowerCase();
}

HelloEnum.java


public enum HelloEnum implements HelloInterface{

    WEATHER_SUNNY( "sunny"),
    WEATHER_CLOUDY( "cloudy")
    ;

    private String shortName;

    //Getter und Konstruktor weggelassen
    
    @Override
    public String getLowercase() {
        return name().toLowerCase();
    }
}

Zusammenfassung

Referenzlink

Recommended Posts

Hier ist eine Zusammenfassung dessen, worauf ich in letzter Zeit neugierig war
Zusammenfassung dessen, was ich über Spring Boot gelernt habe
Eine kleine Zusammenfassung über die typsichere Konfiguration