Pattern Matching은 java 14이후로 나온 기능으로 instanceof 를 활용할 때 코드를 좀 더 간결하게 만들어 줍니다.
instanceof
우선 instanceof 의 기능에 대해 간단히 설명을 하자면
public class ArrayList<E> implements List {}
public List {}
ArrayList와 List가 있다고 했을때
ArrayList list = new ArrayList();
System.out.println(list instanceof ArrayList);
System.out.println(list instanceof List);
System.out.println(list instanceof Set);
ArrayList의 인스턴스 list가 ArrayList, List 의 인스턴스가 맞는지 확인을 할 수가 있습니다.
Output:
true
true
false
list 는 Set의 인스턴스가 아니므로 false가 나오는 것을 볼 수 있습니다.
Pattern Matching
기존
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.meow();
// other cat operations
} else if (animal instanceof Dog) {
Dog dog = (Dog) animal;
dog.woof();
// other dog operations
}
// More conditional statements for different animals
Java 14 이후
if (animal instanceof Cat cat) {
cat.meow();
} else if(animal instanceof Dog dog) {
dog.woof();
}
instanceof 검사와 함께 재정의 까지 함께 할 수 있는 것을 볼 수 있습니다.
Reference
https://www.baeldung.com/java-pattern-matching-instanceof
https://codechacha.com/ko/java-instance-of/
'java > 공부' 카테고리의 다른 글
java 생성자 (0) | 2023.08.04 |
---|---|
Java Map이란(Hash Map) (0) | 2023.07.27 |
[java/자바] Set - HashSet (0) | 2023.07.26 |
java에서 List와 ArrayList 차이점 (0) | 2023.07.19 |
java void란? (0) | 2023.07.16 |