JAVA · 기초 문법
switch 심화 — 패턴 매칭
Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.
기초 문법중급switch패턴매칭whensealed
핵심 설명
Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.
Java code
public class SwitchPatterns {
sealed interface Shape permits Circle, Rect, Triangle {}
record Circle(double r) implements Shape {}
record Rect(double w, double h) implements Shape {}
record Triangle(double base, double height) implements Shape {}
static double area(Shape shape) {
return switch (shape) {
case Circle c -> Math.PI * c.r() * c.r();
case Rect r -> r.w() * r.h();
case Triangle t -> 0.5 * t.base() * t.height();
};
}
static String classify(Object obj) {
return switch (obj) {
case null -> "null";
case Integer i when i > 0 -> "양수: " + i;
case Integer i -> "정수: " + i;
case String s -> "문자열: " + s;
default -> "기타: " + obj;
};
}
public static void main(String[] args) {
System.out.println(area(new Circle(5)));
System.out.println(classify(42));
System.out.println(classify(-3));
System.out.println(classify(null));
}
}학습 팁
switch 패턴 매칭에서 when 가드를 사용하면 조건부 분기를 깔끔하게 표현할 수 있습니다. 더 구체적인 패턴을 위에 배치하세요.
주의할 점
switch에서 패턴 순서가 중요합니다. Integer i when i > 0보다 Integer i를 먼저 쓰면 가드 조건에 도달하지 못합니다.
자주 묻는 질문
switch 심화 — 패턴 매칭란 무엇인가요?
Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.
switch 심화 — 패턴 매칭 학습 시 주의할 점은 무엇인가요?
switch에서 패턴 순서가 중요합니다. Integer i when i > 0 보다 Integer i 를 먼저 쓰면 가드 조건에 도달하지 못합니다.
Continue Learning
Java 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.