반복해서 동일한 switch 문이 존재하는 경우 새로운 조건을 추가하거나
기존의 조건을 변경할 때 모든 switch 문을 찾아서 코드를 변경해야 할 수 있다
자바 11 이후의 LTS 버전(현재 17) 부터 switch expressions 를 지원하며
반복적으로 사용하되는 break 또는 임시 변수를 제거하고 사용할 수 있다
class Refactoring {
public int vacationHours(String type) {
int result;
switch (type) {
case "full-time": result = 120; break;
case "part-time": result = 80; break;
case "temporal": result = 32; break;
default: result = 0;
}
return result;
}
}
class Refactoring {
public int vacationHours(String type) {
return switch (type) {
case "full-time" -> 120;
case "part-time" -> 80;
case "temporal" -> 32;
default -> 0;
};
}
}