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 한다.
※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※