Java 21부터 생긴 스펙이다.
instanceof로 패턴 매칭 사용 전과 후를 비교해 보곘다.
if (obj instanceof Boolean) {
return (Boolean)obj;
} else if (obj instanceof Number) {
Number number = (Number)result.get(sb.toString());
return number.intValue() == 1;
} else if (obj instanceof String) {
String str = obj.toString().toLowerCase();
return "true".equals(str);
}
switch (obj) {
case Boolean b -> booleanValue = (Boolean)obj;
case String s -> booleanValue = "true".equals(obj.toString().toLowerCase());
case Number n -> {
Number number = (Number)result.get(sb.toString());
booleanValue = number.intValue() == 1;
}
default -> booleanValue = Boolean.FALSE;
}
사용 전과 후를 보면 가독성 측면에서 훨신 개선된 모습을 볼 수 있다.