Enum

TIL·2022년 12월 20일
0

Java (최은빈)

목록 보기
17/27

package me.day07.enums;

public enum Authorization { // 상수 처리 = ADMIN != "ADMIN"
    ADMIN, DEV, TEST, USER

    // 내부적으로 상수에 배정되어 있는 값이 있음
    // static final int ADMIN = 0;
    // static final int DEV = 1;
    // static final int TEST = 2;
    // static final int USER = 3;
}

package me.day07.enums;

import java.util.Arrays;

public class EnumsExample {
    public static void main(String[] args) {

        // 사용하는 법
        System.out.println("** authorizations");
        System.out.println(Authorization.ADMIN);
        System.out.println(Authorization.DEV);
        System.out.println(Authorization.TEST);
        System.out.println(Authorization.USER);

        // ordinal() : 각각에 해당하는 int 값, values() : enum 값
        Authorization[] authorizations = Authorization.values();
        for (Authorization authorization: authorizations) {
            System.out.println(authorization.ordinal() + " => " + authorization);
        }

        // toStrig() : emun -> string (mapper 이용하여 객체 간 타입 mapping)
        System.out.println();
        String[] authorizationStrings = new String[authorizations.length];
        for (int i = 0; i < authorizationStrings.length; i++) {
            authorizationStrings[i] = authorizations[i].toString();
        }
        System.out.println(Arrays.toString(authorizationStrings)); // "ADMIN", "DEV", "TEST", "USER"

        // valueOf() : string -> enum
        for (int i = 0; i < authorizationStrings.length; i++) {
            Authorization authorization = Authorization.valueOf(authorizationStrings[i]);
            System.out.println(authorization);
        }
        System.out.println();

        // 소문자는 불가
        Authorization a = Authorization.ADMIN;
        String st = a.toString(); // enum -> string
        System.out.println(st);

        Authorization re = Authorization.valueOf(st); // string -> enum
        System.out.println(re); // 콘솔에서는 구분 안됨

        System.out.println(Authorization.valueOf("ADMIN"));
        System.out.println(Authorization.valueOf("admin")); // IllegalArgumentException (못찾는다)
    }
}

0개의 댓글

관련 채용 정보