Java Custom enum

1

У меня есть таблица и вы хотите сохранить статус с помощью перечисления. Я создал перечисление, как показано ниже.

/**
 * Enumeration for Status
 * 
 * 
 * Current defined values are :
 * <ul>
 *  <li>ACTIVE = 1</li>
 *  <li>INACTIVE = 2</li>
 * </ul>
 */
public enum Status {

    /**
     * ACTIVE (Ordinal 1).
     */
    ACTIVE(1),

    /**
     * INACTIVE (Ordinal 2).
     */
    INACTIVE(2),



    private int value;

    private Status(int value) {
        this.value = value;
    }



   public static void main (String ars[]){
       for (Status str : Status.values()) {
           System.out.println("====str==========="+str.name() +"::::::: "+str.ordinal());
       }
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }


}

Как получить порядковое значение от 1. Мой вывод выглядит так

====str===========ACTIVE::::::: 0
====str===========INACTIVE::::::: 1

На самом деле я сопоставил это перечисление с моей Entity, и я использовал его как ниже

@Column(name = "STATUS",nullable=false)
    @Enumerated(EnumType.ORDINAL)
    private Status status; 

Как сохранить активный статус как 1...?

Теги:
enums
enumeration

3 ответа

3

Вы можете переопределить метод toString() вашего перечисления или предоставить getter.

public enum Status {

    /**
     * ACTIVE (Ordinal 1).
     */
    ACTIVE(1),

    /**
     * INACTIVE (Ordinal 2).
     */
    INACTIVE(2),



    private final int value;

    private Status(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }

    // OR
    @Override
    public String toString() {
         return String.valueOf(value);
    }
}

Затем вы можете позвонить

System.out.println(ACTIVE); // toString is called

или

System.out.println(ACTIVE.getValue());
  • 1
    На самом деле я сопоставил это перечисление с моей сущностью, и я использовал его, как показано ниже
1

Использовать getValue() вместо ordinal()? ordinal() не магически знает, чтобы вызвать ваш метод, он просто возвращает порядковый номер.

0

print str.getValue().

ординал дает вам значения по умолчанию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню