Java 16에 추가된 instanceof 연산자에 대한 pattern matching

Red Culture·2021년 7월 18일
0

instanceof 연산자에 대한 pattern matching으로 object에서 component의 조건부 추출을 보다 간결하고 안전하게 표현할 수 있게 되었다.

// 기존 Java 8 코드
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Student) {
            Student student = (Student) obj;
            if (this.studentNumber == student.studentNumber) {
                return true;
            } else {
                return false;
            }
        }
        return false;
    }
    
// Java 16 instanceof 연산자에 대한 pattern matching
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Student student) {
            if (this.studentNumber == student.studentNumber) {
                return true;
            } else {
                return false;
            }
        }
        return false;
    }

객체 타입이 obj 타입인지 확인한 후(instanceof) obj를 비교할 객체 타입으로 casting 하는 과정이 필요했는데 그 과정이 없어졌고, scope 안에 참조변수를 넣을 수 있게 되었다.

profile
자기 개발, 학습 정리를 위한 블로그

0개의 댓글