일지 어떨지를 () instanceof를 () 메소드의 차이와 방법에 대해 이야기?

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/weixin_43719015/article/details/102719342

문장 요약 :

  • 일지 어떨지 () 메소드를 판정하는 각도 클래스로부터 상속된다 instanceof는 () 메소드는 각 결정에 인스턴스로부터 상속된다.
  • 일지 어떨지 () 메소드는 상위 클래스로, instanceof는 () 메소드를 결정할 것인지 여부를 결정하는 것이다 클래스의 서브 클래스 여부.

1. Class.isAssignableFrom () 方法

Class.isAssignableFrom ()는 서브 클래스 또는 인터페이스의 클래스와 다른 클래스의 클래스 1을 결정하는데 사용되거나 Class2의 다른 클래스와 동일하다.
형식은 다음과 같습니다

Class1.isAssignableFrom(Class2) 

발신자 및 매개 변수는 java.lang.Class의 유형입니다.

2.Class.instanceof () 메소드
Class.instanceof는 () 객체 인스턴스가 클래스 또는 인터페이스 또는 서브 - 서브 클래스 인터페이스의 인스턴스인지의 여부를 결정하기 위해 사용된다.
형식은 다음과 같습니다

obj instanceof TypeName  

첫 번째 파라미터는 객체 인스턴스의 이름이고, 두 번째 파라미터는 클래스 또는 인터페이스의 이름, 예를 들어, 문자열의 InputStream 다릅니다. 누구의 반환 값 부울.

케이스 :

public class AssignableTest {
    public AssignableTest(String name) {
    }
    /**
     * 判断一个类是否是另一个类的父类
     * 是打印true
     * 否打印false
     */
    public static void testIsAssignedFrom1() {
        System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
    }
    /**
     * 判断一个类是否是另一个类的父类
     * 是打印true
     * 否打印false
     */
    public static void testIsAssignedFrom2() {
        System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
    }
    /**
     * 判断一个类是否和另一个类相同
     * 是打印true
     * 否打印false
     */
    public static void testIsAssignedFrom3() {
        System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
    }

    /**
     * 判断str是否是Object类的实例
     * 是打印true
     * 否打印false
     */
    public static void testInstanceOf1() {
        String str = new String();
        System.out.print("str是Object的实例:");
        System.out.println(str instanceof Object);
    }
    /**
     * 判断o是否是Object类的实例
     * 是打印true
     * 否打印false
     */
    public static void testInstanceOf2() {
        Object o = new Object();
        System.out.print("o是Object的实例:");
        System.out.println(o instanceof Object);
    }

    public static void main(String[] args) {
        testIsAssignedFrom1(); // String是Object的父类:false
        testIsAssignedFrom2(); // Object是String的父类:true
        testIsAssignedFrom3();// Object和Object相同:true
        testInstanceOf1(); // str是Object的实例:true
        testInstanceOf2(); // o是Object的实例:true
    }
}

참고 링크 :
일지 어떨지에서 자바 () instanceof를 () 메소드 사용과 방법

추천

출처blog.csdn.net/weixin_43719015/article/details/102719342