Java에서 == 또는 equals() 메서드를 사용하여 Java Enum 비교

Mohammad Irfan 2023년10월12일
  1. Java에서 == 연산자를 사용하여 Enum 비교
  2. Java에서 equals() 메서드를 사용하여 Enum 비교
  3. 열거형 값을 비교하고 null 안전 처리
  4. Java에서 두 개의 서로 다른 열거형 값 비교
Java에서 == 또는 equals() 메서드를 사용하여 Java Enum 비교

이 튜토리얼은 자바에서 == 연산자나 equals() 메소드를 사용하여 자바 열거형을 비교하는 방법을 소개합니다.

Enum은 일, 월, 색상 등과 같은 데이터 세트를 수집하는 데 사용되는 상수 세트입니다. Java에서 enum을 생성하기 위해 enum 키워드를 사용한 다음 유형에 대한 값을 제공합니다.

이 문서에서는 열거형 값과 개체를 비교하는 방법을 보여줍니다. 몇 가지 예를 들어 이해합시다.

Java에서 == 연산자를 사용하여 Enum 비교

==(같음) 연산자는 두 개의 피연산자가 필요한 이항 연산자입니다. 피연산자를 비교하여 true 또는 false를 반환합니다.

이것을 사용하여 열거형 값을 비교할 수 있습니다. 아래 예를 참조하십시오.

enum Color {
  red,
  green,
  yello,
  white,
  black,
  purple,
  blue;
}

public class SimpleTesting {
  public static void main(String[] args) {
    boolean result = isGreen(Color.blue);
    System.out.println(result);
    result = isGreen(Color.green);
    System.out.println(result);
  }

  public static boolean isGreen(Color color) {
    if (color == Color.green) {
      return true;
    }
    return false;
  }
}

출력:

false
true

Java에서 equals() 메서드를 사용하여 Enum 비교

Java equals() 메소드는 두 값을 비교하고 true 또는 false 부울 값을 반환합니다. 이 방법을 사용하여 열거형 값을 비교할 수 있습니다.

여기서는 Color 열거형을 사용하여 값을 비교했습니다. 첫 번째 값은 false를 반환하지만 두 번째 값은 true를 반환합니다. 아래 예를 참조하십시오.

enum Color {
  red,
  green,
  yello,
  white,
  black,
  purple,
  blue;
}

public class SimpleTesting {
  public static void main(String[] args) {
    boolean result = isGreen(Color.blue);
    System.out.println(result);
    result = isGreen(Color.green);
    System.out.println(result);
  }

  public static boolean isGreen(Color color) {
    if (color.equals(Color.green)) {
      return true;
    }
    return false;
  }
}

출력:

false
true

열거형 값을 비교하고 null 안전 처리

Java에서 가장 문제가 되는 문제는 null 값을 처리하는 것입니다. 열거형 비교에도 적용됩니다. 열거형 값을 비교하기 위해 equals() 메소드를 사용하고 열거형 객체가 null이면 nullpointerexception이 발생합니다. 아래 예를 참조하십시오.

enum Color {
  red,
  green,
  yello,
  white,
  black,
  purple,
  blue;
}
public class SimpleTesting {
  public static void main(String[] args) {
    Color color = null;
    boolean result = isGreen(color);
    System.out.println(result);
    result = isGreen(Color.green);
    System.out.println(result);
  }
  public static boolean isGreen(Color color) {
    if (color.equals(Color.green)) {
      return true;
    }
    return false;
  }
}

출력:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "javaexample.Color.equals(Object)" because "color" is null

그러나 ==(같음) 연산자로 작업하고 열거형 값/객체를 비교하면 nullpointerexception이 발생하지 않습니다. 즉, 이 연산자는 null이 안전하고 equals() 메서드보다 사용하기 좋습니다. 아래 예를 참조하십시오.

enum Color {
  red,
  green,
  yello,
  white,
  black,
  purple,
  blue;
}

public class SimpleTesting {
  public static void main(String[] args) {
    Color color = null;
    boolean result = isGreen(color);
    System.out.println(result);
    result = isGreen(Color.green);
    System.out.println(result);
  }

  public static boolean isGreen(Color color) {
    if (color == Color.green) {
      return true;
    }
    return false;
  }
}

출력:

false
true

Java에서 두 개의 서로 다른 열거형 값 비교

equals() 메서드를 사용하여 두 개의 열거형 객체를 비교할 수도 있습니다. 두 객체가 다르기 때문에 두 경우 모두 false를 반환합니다. 아래 예를 참조하십시오.

enum Color {
  red,
  green,
  yello,
  white,
  black,
  purple,
  blue;
}

enum MyColors {
  green,
  red,
  blue;
}

public class SimpleTesting {
  public static void main(String[] args) {
    boolean result = isGreen(Color.red);
    System.out.println(result);
    result = isGreen(Color.green);
    System.out.println(result);
  }

  public static boolean isGreen(Color color) {
    if (color.equals(MyColors.red)) {
      return true;
    }
    return false;
  }
}

출력:

false
false

관련 문장 - Java Enum