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相关推荐
- Java中isAssignableFrom()方法与instanceof()方法用法
一句话总结: isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断. isAssignableFrom()方法是判断是否为某个类的父类, ...
- 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)
关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...
- java中class_Java中Class对象详解
https://blog.csdn.net/mcryeasy/article/details/52344729 待优化整理 总结 Class类简介 在java世界里,一切皆对象.从某种意义上来说,ja ...
- 浅谈EventBus的使用原理
EventBus这是一个目前被广泛使用的,用于在不同的界面(Activity/Fragment)之间传递数据的三方库,其简单的使用深受广大开发者喜欢. 相比起Bundle或者接口回调,EventBus ...
- Spring问题研究之bean的属性xml注入List类型不匹配
一.问题描述 今天在Java群里看到"白日梦想家" 的一个提问,很有意思: 为什么 String类型的列表 通过spring的属性注入 可以注入Integer类型的元素呢? 二.问 ...
- Java筑基——反射(1):基本类周边信息获取
相关文章: Java筑基--反射(1):基本类周边信息获取: Java筑基--反射(2):泛型周边信息获取: Java筑基--反射(3):类内部信息获取 目录 1. 前言 2. 正文 2.1 类的生命 ...
- JAVA后端开发面试经典
1.String的不可变性 一但一个字符串在堆内存创建,它是不能被改变的,我们应该注意所有的关于String类的方法不是改变一个字符串本身,而是重新返回一个新的字符串. 如果我们需要一个频繁的改变一个 ...
- Java双亲委派模型:为什么要双亲委派?如何打破它?破在哪里?
文章目录 一.前言 二.类加载器 三.双亲委派机制 1.什么是双亲委派 2.为什么要双亲委派? 四.破坏双亲委派 1.直接自定义类加载器加载 2.跳过AppClassLoader和ExtClassLo ...
- java 类型判断方法
java 类型判断方法有三种,分别是instanceof, isInstance,isAssignableFrom. 1.instanceof是关键字,isInstance和isAssignableF ...
最新文章
- RocketMQ消息丢失场景及解决办法
- Access中复制表
- spark编程mysql数据源_Spark - 直接操作数据源 MySQL
- JavaWeb学习总结(十二)--事务
- 43 | 套路篇:网络性能优化的几个思路(上)
- 什么是全兼容?DVD主流格式全面解析
- 禁用select下拉方法
- Linux下安装lingo教程-centos6 64位
- 深度学习之MNIST数据集
- Uniapp进行APP打包——iOS 系统
- html开源flash视频播放器代码下载
- isalpha isdigit isalnum isupper 检测字母或数字函数
- virtual box linux 安装增强功能,在linux系统中安装virtualbox增强功能(增强包)的详细步骤...
- php批量邮件地址,PHP通过phpmailer批量发送邮件功能
- java 跨年 周计算公式_Java关于周跨年的周数计算
- harmonyos bate,HarmonyOS 生态最重的拼图,手机开发者 Beta 版终于到来
- 面试官:说说left join和left semi join 两者有什么区别?
- Eth-Trunk的配置
- java游戏 动态录入弹球_动态弹球的实现 加入了多线程技术--javaSE游戏准备工作...
- Django + ajax