Java.lang.Class.isAssignableFrom() 方法

描述

java.lang.Class.isAssignableFrom() 确定此 Class 对象表示的类或接口是否与指定的类或接口相同,或者是其超类或超接口 类参数。


声明

以下是 java.lang.Class.isAssignableFrom() 方法的声明。

public boolean isAssignableFrom(Class<?> cls)

参数

cls − 这是要检查的 Class 对象。


返回值

该方法返回一个布尔值,指示是否可以将 cls 类型的对象分配给该类的对象。


异常

NullPointerException − 如果指定的 Class 参数为 null。


示例

下面的例子展示了 java.lang.Class.isAssignableFrom() 方法的使用。

import java.lang.*;

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);

         // checks whether ClassDemo is assignable from BaseClass
         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 = false
Return Value = true