欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

isAssignableFrom和isInstance、instanceof

发布时间:2025/7/14 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 isAssignableFrom和isInstance、instanceof 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Class.isAssignableFrom

Java的Class类,有一个native的方法: isAssignableFrom

public native boolean isAssignableFrom(Class<?> cls);

它的作用是判断调用这个方法或者接口的类或接口与参数传入的类或接口是否相同,或者是其父类,例如:

Object.class.isAssignableFrom(String.class); // true

Class.isInstance

类似的,Class类还有一个native的方法: isInstance

public native boolean isInstance(Object obj);

它的作用是,传入的参数obj对象(如果为null,则直接返回false),是否是调用这个方法的类或接口的实例,或是其子类的实例,例如:

Map map = new HashMap(); Map.class.isInstance(map); // true

instanceof

当然,还有最常用的,关键字instanceof
判断左边的对象(如果为null,则直接返回false),是否是右边类或接口的实例,或者子类的实例

Map map = new HashMap(); map instanceof Map // true

总结

通过对比可以发现,Class.instance 和 instanceof 的作用其实是一样的,是判断一个对象和类或接口的关系,而Class.isAssignableFrom判断的是两个类或接口之间的关系

总结

以上是生活随笔为你收集整理的isAssignableFrom和isInstance、instanceof的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。