instanceof와 isAssignableFrom의 차이점

1. 구별

  • instanceof는 실례적인 대상을 판단한다. 예를 들어 Dog extends Animal일 때 Dog 대상이 Animal 클래스나 인터페이스의 하위 클래스 하위 인터페이스의 실례인지 판단할 수 있다. 형식은 다음과 같다. oo instanceof TypeName
  • isAssignableFrom은 하나의 클래스 클래스와 다른 클래스 클래스가 같거나 다른 클래스의 클래스나 인터페이스인지 판단한다.일반 호출 형식은: Class1.isAssignableFrom(Class2);
  • 2. 간단한 실례 검증을 통해

    public class Test {  
        public static void main(String[] args) {  
            List list = new ArrayList();  
            System.out.println(list instanceof List);  
            System.out.println(list instanceof ArrayList);  
    
    /*      System.out.println(list.getClass()); 
            System.out.println(List.class); 
            System.out.println(ArrayList.class);*/  
    
            System.out.println(list.getClass().isAssignableFrom(List.class));  
            System.out.println(List.class.isAssignableFrom(list.getClass()));  
        }  
    }  

    좋은 웹페이지 즐겨찾기