java反射系列03 isInstance() isAssignFrom()

isInstance()

Class<Object> clz = Object.class;
clz.isInstance(new String("dengyi"));

如果new String(“dengyi”)实例的类也就是String类是Object类的子类则返回true

isInstance()与 instanceof关键字的区别

  • 使用场景不同
  • 当发生转型异常时,instanceof会无法通过编译,而isInstance()仅返回false
Integer i = 0;
i instandeof String; //无法通过编译
String.class.isInstance(i); //返回false

isAssignFrom()

List.class.isAssignFrom(ArrayList.class);

如果List.class是ArrayList.class的父类或父接口,则返回true。
否则返回false

你可能感兴趣的:(java,java)