728x90
프로젝트에서 코드를 리팩토링 하는 과정에서
같은 연산을 하지만은 상속받는 bean 이 다른 두개의 메소드가 있었다.
물론 다른 패키지 내부의 dao 에서 연산을 하는 것이라 별다른 리팩토링 필요성을 못느꼈는데
같은 연산을 두 패키지 뿐만 아니라 다른 곳에서도 쓰일 가능성을 보고 Util로 옮기며 intanceof 연산자를 사용하게 되었다.
intanceof 연산자란?
사용하는 이유 : 개체가 어떤 클래스인지, 어떤 클래스를 상속받았는지, 즉 인스턴스의 실제 타입을 알아보기 위해 사용
결과 : boolean (true 또는 false)
⭐문법
object instanceOf type
object 가 내가 확인하고 싶은 객체이고 type이 비교 대상이다.
object == type 또는 type을 상속받는 다면 true, 아닐경우 false 를 반환한다.
⭐예제
class Parent{}
class Child extends Parent{}
public class intanceOfExample {
public static void main(String[] args){
Parent parent = new Parent();
Child child = new Child();
System.out.println( parent instanceof Parent ); // true
System.out.println( child instanceof Parent ); // true
System.out.println( parent instanceof Child ); // false
System.out.println( child instanceof Child ); // true
}
}
child 는 부모님 parent 를 상속받기에 true 이지만, parent는 child를 상속받지 않기에 false 가 나온다.
물론 child끼리 parent 끼리 instanceof 연산자로 확인할 경우에는 같은 클래스이기에 true 가 나온다.
이 처럼 한 메소드에서 혹 특정 bean 을 특정지어서 분기처리를 해야한다면 유용하게 쓰일 수 있는 연산자같다.
728x90
반응형
'Self Study > Java' 카테고리의 다른 글
Spring MVC 에서 React 로 전환 (1) | 2025.07.28 |
---|---|
[JAVA] ImmutableMap : 변경 불가능한 맵(Map) (1) | 2024.07.08 |