Deklarieren Sie Enum in Java

Muhammad Zeeshan 12 Oktober 2023
  1. Zweck von Enums in Java
  2. ein int ist erforderlich
  3. Kein int erforderlich
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

  1. 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.
  2. In Java können enums als Eingabe für switch-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

  1. Sie gefährden die Typsicherheit Ihres Programms, wenn Sie Integer-Konstanten anstelle von Aufzählungskonstanten verwenden. Versuchen Sie daher, dies zu vermeiden.
  2. Wenn es nicht unbedingt sein muss, vermeiden Sie die Kombination einer Ganzzahl mit einem enum in Ihrem Code.
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

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

Verwandter Artikel - Java Enum