资讯专栏INFORMATION COLUMN

isAssignableFrom和isInstance、instanceof

JellyBool / 2021人阅读

摘要:的类,有一个的方法它的作用是判断调用这个方法或者接口的类或接口与参数传入的类或接口是否相同,或者是其父类,例如类似的,类还有一个的方法它的作用是,传入的参数对象如果为,则直接返回,是否是调用这个方法的类或接口的实例,或是其子类的实例,例如当

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判断的是两个类或接口之间的关系

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71421.html

相关文章

  • 《Java编程思想》笔记14.类型信息

    摘要:接口与类型信息关键字的一种重要目标就是允许程序员隔离构件,进而降低耦合性。如果你编写接口,那么就可以实现这一目标,但是通过类型信息,这种耦合性还是会传播出去接口并非是对解耦的一种无懈可击的保障。 点击进入我的博客 运行时类型信息使得你可以在运行时发现和使用类型信息,主要有两种方式: 传统的RTTI,它假定我们在编译时已经知道了所有的类型; 反射机制,它允许我们在运行时发现和使用类的...

    Hwg 评论0 收藏0
  • Java高级程序员必备:反射、动态代理

    摘要:相比硬编码,反射要复杂的多,但其给我们带来了更大的灵活性。实际上构造函数也是类的静态方法,因此使用关键字创建类的新对象也会被当做对类的静态引用,从而触发类加载器对类的加载。基础基础主要是为反射提供通用特性的接口或基类。 1. Java类型系统 获取Java类型系统,主要有两个方式:一种是传统的RTTI(Run-Time Type Identification),它假定我们在编译时已经知...

    church 评论0 收藏0
  • Retrofit 源码分析

    摘要:我们知道一个方法有一下关键字段组成首先一个方法必须有描述符,返回值,方法名,参数类型,参数构成。至此,方法的相关的注解分析完毕类型的请求,没有请求体。方法已将在方法里面分析过了,这里面都一样。抛出一个畸形的错误。 简介 retrofit是square出品的一个优秀的网络框架,注意,不是一个网络引擎。它的定位和Volley是一样的。 它完成了封装请求,线程切换,数据装换等一系列工作,如果...

    Kahn 评论0 收藏0
  • Java核心技术教程整理,长期更新

    以下是Java技术栈微信公众号发布的关于 Java 的技术干货,从以下几个方面汇总。 Java 基础篇 Java 集合篇 Java 多线程篇 Java JVM篇 Java 进阶篇 Java 新特性篇 Java 工具篇 Java 书籍篇 Java基础篇 8张图带你轻松温习 Java 知识 Java父类强制转换子类原则 一张图搞清楚 Java 异常机制 通用唯一标识码UUID的介绍及使用 字符串...

    Anchorer 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<