-
Java 16. instanceof Pattern MatchingBackEnd/Java 2024. 12. 8. 08:00반응형
instanceof Pattern Matching
Java 14 preview, Java 16 정식 기능으로 출시된 기능으로 변수의 타입을 확인하고, 원하는 타입이 맞다면 값을 바로 할당해주는 기능입니다.
instanceof
어떤 변수가 특정 타입의 인스턴스인지 확인하는 기능입니다. 다음은 Dog와 Cat 클래스가 Animal 클래스를 상속받고 있는 경우, 인수의 타입을 확인하여 로직을 수행하는 코드입니다.
public String sound(Animal animal) { if (animal instanceof Dog) { Dog dog = (Dog) animal; return dog.bark(); } else if (animal instanceof Cat) { Cat cat = (Cat) animal; return cat.purr(); } throw new IllegalArgumentException("다른 경우의 수는 존재하지 않습니다!"); }
다음은 instanceof pattern matching을 적용하여 하위 타입을 확인하고, 형 변환 후 변수에 할당하는 코드입니다.
public String sound(Animal animal) { // instanceof: 단순 true/false 반환이 아니라, true인 경우 형 변환된 값을 할당해줍니다. if (animal instanceof Dog dog) { return dog.bark(); } else if (animal instanceof Cat cat) { return cat.purr(); } throw new IllegalArgumentException("다른 경우의 수는 존재하지 않습니다!"); }
반응형'BackEnd > Java' 카테고리의 다른 글
Java 17. Sealed Class (1) 2024.12.09 Java 16. Record Class (2) 2024.12.08 Java 15. Text Block (0) 2024.12.07 Java 14. Switch Expression (0) 2024.12.07 Java 12. preview feature (0) 2024.12.07