반응형

1. 시험환경

    ˙ Java

    ˙ Spring Boot

    ˙ IntelliJ

 

2. 목적

    ˙ Java Enum Value로 선언된 각각의 항목에 값이 아닌 범위를 선언하는 방법을 학습한다.

    ˙ Enum Value 범위의 유효성을 검증하는 방법을 학습한다.

 

3. 적용

    ① Java Enum Type을 선언한다.

        - 각 항목에 값이 아닌 범위를 체크하는 코드를 람다식으로 정의한다.

        - 람다식으로 만든 객체에 접근하기 위해서 함수형 인터페이스를 선언한다.
        - 함수형 인터페이스 변수를 매개변수로 갖는 Enum 생성자를 정의한다. (Lombok 사용시 @AllArgsConstructor로 대체)

        -  validAges() : 정의된 Enum Type과 age가 유효한지 확인하는 코드를 정의하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.function.Function;
 
public enum AgeType {
    YOUTH(age -> age >= 0 && age < 10),
    STUDENT(age -> age >= 10 && age < 20),
    YOUNG(age -> age > 20 && age <= 30),
    OLD(age -> age > 30 && age <= 40);
 
    private final Function<Integer, Boolean> checkFunc;
    AgeType(Function<Integer, Boolean> checkFunc) {
        this.checkFunc = checkFunc;
    }
 
    public void validAges(Integer _age) {
        if (checkFunc.apply(_age) == false) {
            System.out.println("age is not valid");
        }
        else {
            System.out.println("age is valid");
        }
    }
}
cs

 

    ② test 변수를 Enum Type으로 선언 후, "YOUTH"를 할당하고, 유효성 검사 코드를 작성한다.

        - "YOUTH"로 정의된 변수(test)의 범위에 4가 포함되는가 확인
        - "YOUTH"로 정의된 변수(test)의 범위에 14가 포함되는가 확인

1
2
3
4
5
6
7
8
9
public class Start {
    public static void main(String[]args) throws Exception {
        System.out.println("Hello World");
 
        AgeType test = AgeType.YOUTH;
        test.validAges(4);
        test.validAges(14);
    }
}
cs

 

4. 결과

    ˙ 변수에 정의된 Enum Type(YOUTH)과 값(4 또는 14)이 유효한가에 대한 결과를 확인한다.

        - "4"는 YOUTH 범위에 포함되므로, true를 return 한다.

        - "14"는 YOUTH 범위에 포함되지 않으므로, false를 return 한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ Java

    ˙ Spring Boot

    ˙ IntelliJ

 

2. 목적

    ˙ Enum Value 정의하고 description 추가하는 방법을 학습한다.

    ˙ 위의 방법을 Lombok Annotation을 이용하여 단순화하는 방법을 학습한다.

 

3. 적용

    ① 방법1) Java에서 Enum Type 선언 및 description 추가 방법

        - WorldType을 enum 변수로 선언한다.

        - WorldType으로 선언된 변수는 ASIA, AMERICA, OCEANIA, EUROP, AFRICA 값만 가질 수 있다.

        - 각 Enum 항목에 "description"을 추가하기 위해 "desc" 변수를 선언한다.

        - "desc"의 Getter()와 매개변수를 갖는 constructor()를 정의한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public enum WorldType {
 
    ASIA("아프리카 대륙"),
    AMERICA("미주"),
    OCEANIA("오세아니아"),
    EUROP("유럽"),
    AFRICA("아프리카");
 
    private final String desc;
 
    private WorldType(String desc) {
        this.desc = desc;
    }
 
    public String getDesc() {
        return this.desc;
    }
}
cs

 

    ② 방법2) Lombok 라이브러리를 이용하여 코드 단순화 방법

        - Lombok을 이용하면 Getter()는 @Getter로 대체할 수 있다

        - Lombok을 이용하면 매개 변수를 갖는 constructor()는 @AllArgsConstructor()로 대체할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import lombok.AllArgsConstructor;
import lombok.Getter;
 
@Getter
@AllArgsConstructor
public enum WorldType {
 
    ASIA("아프리카 대륙"),
    AMERICA("미주"),
    OCEANIA("오세아니아"),
    EUROP("유럽"),
    AFRICA("아프리카");
 
    private final String desc;
}
cs

 

4. 결과

    ˙ IntelliJ에서 코드를 작성하면, "desc" 키워드가 추가되는 것을 확인할 수 있다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형

+ Recent posts