Может кто-нибудь объяснить, как эта программа относительно enum работает в Java?

Вот код:

enum Status {

    STATUS_OPEN(10),
    STATUS_STARTED(11),
    STATUS_INPROGRESS(12);

    private final int status;

    Status(int aStatus) {
        this.status = aStatus;
    }

    public int getStatus() {
        return this.status;
    }

}

class StatusTest3 {

    public static void main(String[] args) {

        for (Status stat : Status.values()) {
            System.out.println(stat + " value is " + stat.getStatus());
        }
    }
}

Что значит Status.values() вернуть?

и вывод:

STATUS_OPEN value is 10
STATUS_STARTED value is 11
STATUS_INPROGRESS value is 12

2 ответа

Status.values(): вернет массив, содержащий константы этого типа enum, в порядке их объявления

Подробнее читайте в JLS: http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html

http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html

Все константы типа enum могут быть получены путем вызова неявного открытого статического метода T[] values ​​() этого типа.

Другие вопросы по тегам