Java Switch 패턴 매칭

동오·2024년 12월 3일

Switch 패턴 매칭

Java 21부터 생긴 스펙이다.

instanceof로 패턴 매칭 사용 전과 후를 비교해 보곘다.


패턴 매칭 사용 X

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);
}

패턴 매칭 사용 O

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;
}

사용 전과 후를 보면 가독성 측면에서 훨신 개선된 모습을 볼 수 있다.

0개의 댓글