Как вернуть enum, в зависимости от поля сущности?

В Java, вы можете вернуть значение перечисления на основе поля сущности, используя оператор switch или if-else.

Например, если у вас есть перечисление с именем «Color» со значениями «RED», «BLUE» и «GREEN», и сущность с именем «Shape» с полем «color», вы можете вернуть соответствующее значение перечисления так:

enum Color {
  RED, BLUE, GREEN
}

class Shape {
  private Color color;

  public Shape(Color color) {
    this.color = color;
  }

  public Color getColorEnum() {
    return color;
  }
}

class Main {
  public static void main(String[] args) {
    Shape shape = new Shape(Color.RED);
    Color color = shape.getColorEnum();
    System.out.println(color); // Вывод: RED
  }
}

Либо вы можете использовать оператор switch, чтобы вернуть значение перечисления на основе значения поля color:

enum Color {
  RED, BLUE, GREEN
}

class Shape {
  private String color;

  public Shape(String color) {
    this.color = color;
  }

  public Color getColorEnum() {
    switch (color) {
      case "red":
        return Color.RED;
      case "blue":
        return Color.BLUE;
      case "green":
        return Color.GREEN;
      default:
        throw new IllegalArgumentException("Недопустимый цвет: " + color);
    }
  }
}

class Main {
  public static void main(String[] args) {
    Shape shape = new Shape("red");
    Color color = shape.getColorEnum();
    System.out.println(color); // Вывод: RED
  }
}

Рейтинг
( Пока оценок нет )
Загрузка ...