반응형

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 한다.

 

 

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

반응형

+ Recent posts