Class的isAssignableFrom方法

2023-05-16

https://www.cnblogs.com/hzhuxin/p/7536671.html

Class类的isAssignableFrom是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下:


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

由方法签名可见是一个本地方法,即C代码编写的。

以下是JDK中的注释:

Determines if the class or interface represented by this Class object is either the same as,  

or is a superclass or superinterface of, the class or interface represented by the specified Class parameter.

It returns true if so; otherwise it returns false.

If this Class object represents a primitive type, this method returns true if the specified Class parameter is exactly this Class object; otherwise it returns false.

意思如下:

有两个Class类型的类象,一个是调用isAssignableFrom方法的类对象(后称对象a),以及方法中作为参数的这个类对象(称之为对象b),这两个对象如果满足以下条件则返回true,否则返回false:

    a对象所对应类信息是b对象所对应的类信息的父类或者是父接口,简单理解即a是b的父类或接口

    a对象所对应类信息与b对象所对应的类信息相同,简单理解即a和b为同一个类或同一个接口

测试代码:

复制代码


//说明:Protocol是接口,DubboProtocol是Protocol的实现  

Class protocolClass = Protocol.class ;   
Class dubboProtocolClass = DubboProtocol.class ;
        
        
 protocolClass.isAssignableFrom(dubboProtocolClass )) ;   //返回true
 protocolClass.isAssignableFrom(protocolClass )) ;        //返回true
 dubboProtocolClass.isAssignableFrom(protocolClass )) ;   //返回false  

复制代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Class的isAssignableFrom方法 的相关文章

  • 在类内部和外部定义的模板类的成员函数之间的区别

    在类声明内部和外部为模板类定义成员函数之间有区别吗 里面定义 template
  • 如果 CodeIgniter 方法不存在,则重定向到默认方法。

    我正在使用 CodeignIter 并且正在寻找一种在被调用方法不存在时为单个控制器编写自定义处理例程的方法 假设你打电话www website com components login In the components控制器 没有一个方
  • 我如何使用 cout << myclass

    myclass是我写的一个C 类 当我写的时候 myclass x cout lt lt x 我该如何输出10 or 20 2 就像一个integer or a float value 通常通过重载operator lt lt 对于你的班级
  • 如何只获取父类对象的属性

    我有两节课 class Parent object def init self id name self id id self name name self parent vars id name make a copy def print
  • 不能从模板 C++ 类继承[重复]

    这个问题在这里已经有答案了 我不知道这里出了什么问题 也许有人可以帮助我 我想继承我的新班级MyDictionary来自模板抽象类dictionary 我有这样的代码 字典 h ifndef UNTITLED CPP DICTIONARY
  • 缺少 1 个必需的位置参数 [重复]

    这个问题在这里已经有答案了 class classname def createname self name self name name def displayname self return self name def saying s
  • 类返回语句不打印任何输出

    我正在学习课程 但遇到了问题return语句 它是语句吗 我希望如此 程序什么也没有打印出来 它只是结束而不做任何事情 class className def createName self name self name name def
  • issubclass() 对从不同路径导入的同一类返回 False

    目的是实现某种插件框架 其中插件是同一基类 即 A 的子类 即 B 基类使用标准导入加载 而子类使用 imp load module 从众所周知的包 即 pkg 的路径加载 pkg init py mod1 py class A mod2
  • 如何通过反射判断一个Java类是否是抽象类

    我正在通过 Jar 文件中的类进行交互 并希望找到那些不抽象的类 我可以通过实例化类并捕获 InstantiationException 来解决此问题 但这会影响性能 因为某些类启动繁重 我在 Class java 文档中找不到类似 isA
  • 从对象数组中删除重复项

    我有一堂课叫Customer它有几个字符串属性 例如 firstName lastName email etc 我从a读取客户信息csv创建类数组的文件 Customer customers 我需要删除具有相同电子邮件地址的重复客户 为每个
  • python 从字符串创建对象

    我有下一个情况 以下方法的目标是返回从传入字符串创建的对象 所以我有 class Situation Generator pass 以及父类中的方法 class Generator object def createsituation se
  • java中如何重写一个方法然后调用超类方法

    我试图重写我的 java 子类中的超类中的方法 然后从超类中调用重写的方法 这是正确的方法吗 我想要重写的超类中的方法称为describe public static void describe Item describe Use the
  • super(cls, 实例) 和 super(cls, 子类) 之间有什么区别?

    Won t super cls instance and super cls subclass 两者都返回超类cls 差异是巨大的 super 使用类型 类 第二个参数而不是对象 实例 为您提供未绑定的方法 而不是绑定的方法 就像访问类上的
  • 有没有一种简单的方法来获取 PHP 中实例化类的文件?

    我想复制这个 myObject new object FILE class object protected path to caller public function construct file this gt path to cal
  • 获取包中声明的所有 Java 类的名称

    我正在编写一个功能 它将有助于将类放入我的程序的某个包中 另外 我只想要子类某个类的类 我需要这些类才能调用它们的静态方法 有没有一种自动的方法来做到这一点 如果是的话 速度慢吗 如果我不清楚 我想要的是这样的 ArrayList
  • Python对象实例中的dict不包含该类的方法

    当创建对象的实例时 它的字典不包含类方法 一个例子是 class A object def init self value self value value def some func self pass instance A some v
  • Java 类范围和库

    我正在创建一个 Java 库 作为最终产品 打算将此 jar 分发给开发人员 我正在从 Objective C 翻译 我的库 在其中我控制开发人员可以使用哪些类头文件 换句话说 我只向开发人员公开他们可以处理的几个类 在我的 Java 库中
  • 如何使用核心 R 操作/访问“dist”类实例的元素?

    R 中的基本 公共类称为 dist 并且是对称距离矩阵的相对有效的表示 不像一个 matrix 对象 但是 似乎不支持操纵 dist 使用索引对实例 操作员 例如 以下代码不返回任何内容 NULL 或出现错误 First create an
  • 如何将 CreateThread 用于类成员函数?

    你如何使用CreateThread 创建作为类成员的函数的线程 您需要创建一个静态方法来用作实际的线程启动函数 并将一个指向实例的指针作为lpParameter论证CreateThread 这将被传递给静态方法 该方法可以将其转换为对象指针
  • 查找定义类的 PHP 文件(在运行时)

    PHP 中是否有任何反射 内省 魔法可以让您找到定义特定类 或函数 的 PHP 文件 换句话说 我有一个 PHP 类的名称 或者一个实例化对象的名称 我想把这个传递给某物 函数 反射类等 将返回定义该类的文件系统路径 path to cla

随机推荐

  • idea创建父子工程

    new 一个project xff0c 删除src xff0c 只保留pom文件 xff0c 作为主工程 webparent xff0c 工程目录D ideaProjects self multimodule xff1b 右键点击上面创建的
  • css基础

    层叠次序 当同一个 HTML 元素被不止一个样式定义时 xff0c 会使用哪个样式呢 xff1f 一般而言 xff0c 所有的样式会根据下面的规则层叠于一个新的虚拟样式表中 xff0c 其中数字 4 拥有最高的优先权 浏览器缺省设置外部样式
  • spring官网下载jar包

    http repo spring io release org springframework spring 查找方法 xff1a https spring io gt 点击 project https spring io projects
  • idea快捷键

    Intellij IDEA神器居然还藏着这些实用小技巧 xff0c 爽 xff01 xff01 xff01 自动补全返回值 可以引入变量 ctrl 43 alt 43 v Ctrl 43 或者 xff0c 可以跑到大括号的开头与结尾 Ctr
  • IDEA添加serialVersionUID

    打开IDEA中的 Setting gt Editor gt Inspections 选项中 xff0c java gt Serialization issues gt 将Serializable class without 39 seria
  • java序列化

    http www cnblogs com szlbm p 5504166 html Java对象表示方式1 xff1a 序列化 反序列化和transient关键字的作用 平时我们在Java内存中的对象 xff0c 是无 法进行IO操作或者网
  • Java之Collections.emptyList()、emptySet()、emptyMap()的作用和好处以及要注意的地方。

    https blog csdn net qq 27093465 article details 65444622 先说明一下好处有哪些 xff1a 1 xff0c 如果你想 new 一个空的 List xff0c 而这个 List 以后也不
  • java String ... valuese 什么意思

    jdk1 5的新特性 xff1a 变长变量 其实这种定义就类似一个数据的定义 xff0c 可以不用给它的长度加以限制 xff0c 可以传入任意多个参数 比用数据更灵活一些 xff0c 不会出现一些数组越界等的异常 如 xff1a getTy
  • debug技巧和使用

    介绍一种能debug到HashMap内部数据结构的方法 https blog csdn net victor cindy1 article details 52336983 1 这里以一个web工程为例 xff0c 点击图中按钮开始运行we
  • Linux中如何添加/删除FTP用户并设置权限?

    以阿里云服务器为例 xff0c 在linux中添加ftp用户 xff0c 并设置相应的权限 xff0c 操作步骤如下 xff1a 1 环境 xff1a ftp为vsftp 被设置用户名为test 被限制路径为 alidata www tes
  • 解析IOS二进制格式的bplist

    关于二进制格式的plist xff0c 搜到一篇博客 详解Binary Plist格式 xff0c 介绍的很详细 xff0c 但是结合github上关于一份解析bplist的代码通过结果实际来看 xff0c 博客中解析对象表的说明出现了问题
  • Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候 xff0c 遇到了这样一个问题 xff0c 就是String StringBuilder以及StringBuffer这三个类之间有什么区别呢 xff0c 自己从网上搜索了一些资料 xff0c 有所了解了之后在这里整
  • SynthesizedAnnotation

    标识组合注解 该接口没有实现类 xff0c 具体用法待研究
  • autowire注解源码解析

    引用 xff1a https blog csdn net wang704987562 article details 80868368
  • ConcurrentHashMap解析

    https www cnblogs com ITtangtang p 3948786 html java util concurrent xff08 j u c xff09 源码阅读
  • Java中getResourceAsStream的用法

    https www cnblogs com macwhirr p 8116583 html 首先 xff0c Java中的getResourceAsStream有以下几种 xff1a 1 Class getResourceAsStream
  • Map var2 = this.bfgInstancesByKey; synchronized(this.bfgInstancesByKey) { 疑惑

    org springframework beans factory access SingletonBeanFactoryLocator useBeanFactory public BeanFactoryReference useBeanF
  • spring父子容器

    https www jb51 net article 132197 htm http www cnblogs com kevin yuan p 6404702 html https blog csdn net user xiangpeng
  • ContextLoaderListener与RequestContextListener配置问题

    https blog csdn net yanweju article details 70622313 在SSH2 SSM等web应用开发框架的配置过程中 xff0c 因为都要用到Spring xff0c 所以 xff0c 往往我们首先都
  • Class的isAssignableFrom方法

    https www cnblogs com hzhuxin p 7536671 html Class类的isAssignableFrom是个不常用的方法 xff0c 感觉这个方法的名字取得不是很好 xff0c 所以有必要在此解析一下 xff