`
perfect5085
  • 浏览: 269797 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java instanceof Class.isInstance() isAssignableFrom区别

 
阅读更多

instanceof 和 Class.isInstance() 功能完全相同:判断对象是否是一个接口的实例,或者是这个类及其子类的实例。

注意用法:

// 是静态,右边仅仅出现:接口或者类的名字

// 判断blackCircleObject是否是Shape的实例

if(blackCircleObject instanceof Shape){

System.out.println("00000000000000");

}

// 是Class对象的静态方法

// 判断blackCircleObject是否是Shape的实例

if(Shape.class.isInstance(blackCircleObject)){

System.out.println("44444444444444444");

}

 

Class.isAssignableFrom():是针对Class对象,判断Class对象之间是否有联系。

如果入参的Class对象来自这个接口,或者就是这个类本身,或者是其子类,返回true, 否则返回false

// 是Class对象的静态方法

// 入参:circleClass是一个Class对象,判断circleClass代表的类,是否实现,继承,等同 Shape.

if(Shape.class.isAssignableFrom(circleClass)){

System.out.println("AAAAAAAAAAAAAAAA");

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics