Java Class isAssignableFrom() 方法



描述

Java Class isAssignableFrom() 方法確定此 Class 物件所表示的類或介面是否與指定的 Class 引數所表示的類或介面相同,或者是否是其超類或超介面。

宣告

以下是java.lang.Class.isAssignableFrom() 方法的宣告

public boolean isAssignableFrom(Class<?> cls)

引數

cls − 要檢查的 Class 物件。

返回值

此方法返回一個布林值,指示型別為 cls 的物件是否可以賦值給此類的物件。

異常

NullPointerException − 如果指定的 Class 引數為 null。

不可賦值類的賦值狀態示例

以下示例演示了 java.lang.Class.isAssignableFrom() 方法的用法。在這個程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法檢索例項的類。然後檢索 ClassDemo 子類的類,並使用 isAssignableFrom() 檢查並列印 SubClass 的賦值狀態。

package com.tutorialspoint;

public class ClassDemo {

   public static void main(String[] args) {

      try {
         ClassDemo cls = new ClassDemo();
         Class c = cls.getClass();

         // class object associated with BaseClass
         Class subClass = SubClass.class;

         // checks whether BaseClass is assignable from ClassDemo
         boolean retval = subClass.isAssignableFrom(c);
         System.out.println("Return Value = " + retval);
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

// base class
class SubClass extends ClassDemo {
   public SubClass() {
      // no argument constructor
   }
}

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

Return Value = false

可賦值類的賦值狀態示例

以下示例演示了 java.lang.Class.isAssignableFrom() 方法的用法。在這個程式中,我們建立了一個 ClassDemo 的例項,然後使用 getClass() 方法檢索例項的類。然後檢索 ClassDemo 子類的類,並使用 isAssignableFrom() 檢查並列印 ClassDemo 的賦值狀態。

package com.tutorialspoint;

public class ClassDemo {

   public static void main(String[] args) {

      try {
         ClassDemo cls = new ClassDemo();
         Class c = cls.getClass();

         // class object associated with BaseClass
         Class subClass = SubClass.class;

         // checks whether ClassDemo is assignable from BaseClass
         boolean retval = c.isAssignableFrom(subClass);
         System.out.println("Return Value  = " + retval);
      } catch(Exception e) {
         System.out.println(e.toString());
      }
   }
}

// base class
class SubClass extends ClassDemo {
   public SubClass() {
      // no argument constructor
   }
}

輸出

讓我們編譯並執行上面的程式,這將產生以下結果:

Return Value = true
java_lang_class.htm
廣告