Deklarieren Sie Enum in Java
Das Deklarieren eines enum
für einen DownloadType
in Java wird das Thema dieses Artikels sein. Schauen wir uns zunächst den Zweck von enums
an.
Zweck von Enums
in Java
- Aufzählungen werden verwendet, damit eine Sammlung von Objekten als Konstanten innerhalb eines Programms verwaltet werden kann, ohne von einem externen Wert wie einer
Ganzzahl
abhängig zu sein. - In Java können
enums
als Eingabe fürswitch
-Anweisungen verwendet werden, und sie können neben anderen Vergleichsmethoden sicher mit dem==
- oder Gleichheitsoperator verglichen werden.
Da enums
im Wesentlichen Objekte ihres Typs und keine Primitiven sind, kommt man nicht darum herum, eine Methode aufzurufen oder einen .value
zu verwenden, um den Wert aus einem enum
zu extrahieren, wenn man dies braucht.
Zunächst müssen wir uns fragen, ob ein int
benötigt wird oder nicht. Dann wird es zwei mögliche Ergebnisse geben, die wir im folgenden Abschnitt durchgehen werden.
ein int
ist erforderlich
Wenn Sie eine Ganzzahl wünschen, riskieren Sie den Verlust der Typsicherheit und die Möglichkeit, dass Benutzer ungültige Informationen an Ihre API senden. Sie können die folgenden Konstanten auch als Ganzzahlen deklarieren.
Machen Sie den Konstruktor privat
, wenn Sie nur statische Mitglieder haben und eine statische Klasse in Java simulieren möchten.
public final class DownloadType {
public static final int audio = 0;
public static final int video = 1;
public static final int audio_and_video = 2;
private DownloadType() {}
}
Da die Funktion .ordinal()
unabhängig davon verfügbar ist, ob das Wertfeld vorhanden ist, könnte die Enumeration
wie folgt definiert werden:
enum DownloadType { audio, video, audio_and_video }
Um die passende Zahl für einen enum
-Wert zu erhalten, verwenden Sie die .ordinal()
-Funktion. Jedem Aufzählungswert wird automatisch eine eindeutige Nummer zugewiesen, die mit Null beginnt und für jeden nachfolgenden Wert in der gleichen Reihenfolge wie deklariert um eins erhöht wird.
DownloadType.audio_and_video.ordinal();
Kein int
erforderlich
Der ganzzahlige Wert eines enum
ist nicht immer zuverlässig. Verwenden Sie stattdessen den Wert selbst.
In Fällen, in denen eine zugehörige Ganzzahl unnötig ist, versuchen Sie stattdessen Folgendes:
private enum DownloadType { audio, video, audio_and_video }
DownloadType dt = MyObj.getDownloadType();
if (dt == DownloadType.audio) {
}
Sie können Ihre Logik in den Körper switch
und if()
schreiben, um Aktionen auszuführen. Außerdem können Sie die Anweisung switch
anstelle der Bedingung if()
verwenden.
private enum DownloadType { audio, video, audio_and_video }
DownloadType dt = MyObj.getDownloadType();
switch (dt) {
case audio:
break;
case video:
break;
case audio_and_video:
break;
}
Gute Praktiken
- Sie gefährden die Typsicherheit Ihres Programms, wenn Sie Integer-Konstanten anstelle von Aufzählungskonstanten verwenden. Versuchen Sie daher, dies zu vermeiden.
- Wenn es nicht unbedingt sein muss, vermeiden Sie die Kombination einer Ganzzahl mit einem
enum
in Ihrem Code.
I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.
LinkedIn