본문 바로가기
java/공부

java Pattern Matching

by sungin95 2023. 8. 3.

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