enumを使えばコードが劇的にスッキリ!

Java_列挙体について Java

Javaでよく出てくる「enum」。聞いたことはあるけど、なんとなく難しそう…と感じていませんか?定数と何が違うの?どう使うの?と迷っているあなたにぴったりの記事です。
私も最初は「intで定数使えばいいじゃん」と思っていました。でも、実務でenumを使いこなすようになってから、バグが減り、コードも見やすくなったんです。
この記事では、enumの基本から応用までをやさしく解説。実際のコード例とともに「なぜ使うべきか」がストンと理解できるようになります。
「やっとenumの意味がわかった」「if文よりswitchと組み合わせたら最高に見やすい」といった声も多く寄せられています。
曜日や状態(ステータス)の管理にenumを使うと、コードがグッとわかりやすくなります。
この記事を読み終えるころには、enumの達人になっているはず!それでは、enumの世界に出発しましょう!

enumの基本的な使い方がわからない

enumって何?

enum(列挙型)は「決まった値の集合」を扱うときに使う特別な型です。
曜日、性別、状態(ON/OFF)など、選択肢が決まっている場面では、enumを使うことでミスを防げます。
具体例を見てみましょう!

public enum Day {
  MONDAY, TUESDAY, WEDNESDAY,
  THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

上の例では、Day.MONDAYなどの形で使えます。

enumは「選べる値が決まっているとき」の定番道具です!

enumを使うメリットがピンとこない/使うべきタイミングがわからない

なぜintやStringではダメなの?

enumは「安全」で「意味が伝わる」コードを作れます。
変数のintやStringだと、間違った値でもコンパイルが通ってしまいます。でもenumなら、指定された値しか使えません。

具体例:

public enum Gender {
  MALE, FEMALE
}

Gender g = Gender.MALE; // OK
Gender g = "男"; // エラー!

enumは「間違った値を排除する」セーフティガードなんです。

enumにフィールドやメソッドを定義できることを知らない/使い方が難しい

enumにもデータを持たせられる!

enumはただの定数じゃなく、「値」や「処理」も持てます。
Javaのenumはクラスのような性質があるため、フィールドやコンストラクタ、メソッドを定義できます。
具体例を見てみましょう!

public enum Status {
  SUCCESS(200), ERROR(500);

  private int code;

  Status(int code) {
    this.code = code;
  }

  public int getCode() {
    return code;
  }
}

Status s = Status.SUCCESS;
System.out.println(s.getCode()); // 200

「処理付き定数」=enumの真骨頂!

switch文とenumを組み合わせた使い方がわからない

enum × switchは相性抜群

switch文はenumと一緒に使うと、コードがとても読みやすくなります。
caseで列挙値を使うことで、条件分岐がスッキリ整理できます。
具体例を見てみましょう!

Day today = Day.MONDAY;

switch (today) {
  case MONDAY:
    System.out.println("週の始まり!");
    break;
  case FRIDAY:
    System.out.println("週末目前!");
    break;
  default:
    System.out.println("普通の日");
}

switchとenumで「読みやすさ」と「安全性」を両立することができます!

enumを文字列や数値と変換したい(toString / valueOf など)

enumと文字列・数値の変換テクニック

enumは name()valueOf() を使えば、文字列との相互変換ができます。
画面入力やデータベースから受け取った値をenumに変換したいことはよくあります。
具体例を見てみましょう!

// enumから文字列
System.out.println(Day.MONDAY.name()); // "MONDAY"

// 文字列からenum
Day d = Day.valueOf("MONDAY");

文字列がenumにない場合は IllegalArgumentException が発生します。try-catchでの対処が必要です。

文字列とenumの相互変換は、画面連携や外部システム連携で必須です!

まとめ:enumを使いこなして安全で読みやすいコードへ!

この記事では、Javaのenumについて以下のようなポイントを学びました:

  • enumとは「決まった選択肢」を扱う特別な型
  • intやStringより安全で、意味も明確になる
  • フィールドやメソッドを持たせることで拡張性も抜群
  • switch文と相性がよく、分岐が整理しやすい
  • 文字列との変換もでき、外部との連携も可能

初心者でも「enumって便利!」と実感できるはず。まずは簡単なenumを作って、実際に動かしてみましょう。使えば使うほど、その便利さがわかってくるはずです!

タイトルとURLをコピーしました