- Pattern Matching for switch
Java 17에서 패턴 매칭은 switch 문에서 개선되었습니다. 이것은 코드를 더 간결하게 만들고, 더 안전하게 작성하며, 유지 관리하기 쉽게 만듭니다.
예를 들어, 이전 버전의 Java에서는 switch 문으로 instanceof 연산자를 사용하여 형변환 후에 사용할 수 있었지만, Java 17에서는 더 간단한 방법으로 작성할 수 있습니다:
[ JAVA7~ ]
public String getDayOfWeek(String day) {
String dayOfWeek;
switch (day) {
case "Monday":
dayOfWeek = "It's Monday!";
break;
case "Tuesday":
dayOfWeek = "It's Tuesday!";
break;
case "Wednesday":
dayOfWeek = "It's Wednesday!";
break;
case "Thursday":
dayOfWeek = "It's Thursday!";
break;
case "Friday":
dayOfWeek = "It's Friday!";
break;
case "Saturday":
dayOfWeek = "It's Saturday!";
break;
case "Sunday":
dayOfWeek = "It's Sunday!";
break;
default:
dayOfWeek = "Invalid day";
}
return dayOfWeek;
}
[ JAVA17 ]
public String getDayOfWeek(String day) {
return switch (day) {
case "Monday" -> "It's Monday!";
case "Tuesday" -> "It's Tuesday!";
case "Wednesday" -> "It's Wednesday!";
case "Thursday" -> "It's Thursday!";
case "Friday" -> "It's Friday!";
case "Saturday" -> "It's Saturday!";
case "Sunday" -> "It's Sunday!";
default -> "Invalid day";
};
}
이 외에도 17에서는 Object 형 변환 없이 switch를 사용 가능합니다.
public String getShapeName(Object shape) {
return switch (shape) {
case Circle c -> "Circle";
case Rectangle r -> "Rectangle";
case Triangle t -> "Triangle";
default -> "Unknown";
};
}
switch는 많이 쓰이는 코드이니 17 도입 예정이라면 한번쯤 써보는 것도 좋을 듯 합니다.

'IT-Language > IT-Java' 카테고리의 다른 글
JAVA - AOP (관점지향 프로그래밍) (0) | 2024.04.10 |
---|---|
어노테이션(Annotation) - @Target (0) | 2023.11.30 |
어노테이션(Annotation) - @Retention (0) | 2023.11.30 |
java RuntimeException (0) | 2023.11.05 |
Java와 VC++ 동기화 비교 (0) | 2023.11.05 |