Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。
格式为:
Class1.isAssignableFrom(Class2)
调用者和参数都是java.lang.Class类型。
而instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是:o instanceof TypeName
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。
- package com.bill99.pattern;
- public class AssignableTest {
- public AssignableTest(String name) {
- }
- /**
- * 判断一个类是否是另一个类的父类
- * 是打印true
- * 否打印false
- */
- public static void testIsAssignedFrom1() {
- System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
- }
- /**
- * 判断一个类是否是另一个类的父类
- * 是打印true
- * 否打印false
- */
- public static void testIsAssignedFrom2() {
- System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
- }
- /**
- * 判断一个类是否和另一个类相同
- * 是打印true
- * 否打印false
- */
- public static void testIsAssignedFrom3() {
- System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
- }
- /**
- * 判断str是否是Object类的实例
- * 是打印true
- * 否打印false
- */
- public static void testInstanceOf1() {
- String str = new String();
- System.out.print("str是Object的实例:");
- System.out.println(str instanceof Object);
- }
- /**
- * 判断o是否是Object类的实例
- * 是打印true
- * 否打印false
- */
- public static void testInstanceOf2() {
- Object o = new Object();
- System.out.print("o是Object的实例:");
- System.out.println(o instanceof Object);
- }
- public static void main(String[] args) {
- testIsAssignedFrom1();
- testIsAssignedFrom2();
- testIsAssignedFrom3();
- testInstanceOf1();
- testInstanceOf2();
- }
- }
结果:
String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true
Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别的更多相关文章
- instanceof关键字 与 getClass()
在equals()中使用getClass进行类型判断 我们在覆写equals()方法时,一般都是推荐使用getClass来进行类型判断,不是使用instanceof.我们都清楚instanceof的作 ...
- 判断一个类是否为另一个类的实例 instanceof关键字和isAssignableFrom方法的区别
Which of the following is better? a instanceof B or B.class.isAssignableFrom(a.getClass()) The only ...
- Class.isAssignableFrom(Class clz)与instanceof与Class.isInstance(Object obj) 的区别和联系
编程的时候可能会遇到一个不知道它属于哪个类的对象,我们可以用下列运算符或者方法来判断. 1.instanceof instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或 ...
- Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法
ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法 ...
- Java中isAssignableFrom()方法与instanceof()方法用法
一句话总结: isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断. isAssignableFrom()方法是判断是否为某个类的父类, ...
- instanceof关键字使用的方法(解决转型异常ClassCastException)
一丶问题显现: 当你是父类的情况下,像使用子类的特定功能,就需要向下转型,但向下转型有可能会报错(ClassCastException) 而instanceof关键字就是解决异常的小能手,他能判断是否 ...
- [zz]Java中的instanceof关键字
1.What is the 'instanceof' operator used for? stackoverflow的一个回答:http://stackoverflow.com/questions/ ...
- Java中instanceof关键字的用法
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. instanc ...
- Java instanceof 关键字是如何实现的?
作者:RednaxelaFX链接:https://www.zhihu.com/question/21574535/answer/18998914来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...
随机推荐
- Android 数据存储02之文件读写
Android文件读写 版本 修改内容 日期 修改人 V1.0 原始版本 2013/2/25 skywang Android文件读写的有两种方式.一种,是通过标准的JavaIO库去读写.另一种,是通过 ...
- centos7虚拟机(vmware)通过U盘传文件
centos7虚拟机(vmware)通过U盘传文件 centos7虚拟机安装以后,WINDOWS给CENTOS7传文件,除了在CENTOS7安装SAMBA外,其实通过U盘也是可以的. CENTOS7对 ...
- cocos2d-x调用scheduleUpdate()不执行update()方法的解决办法
前两天使用到每帧都更新动画的scheduleUpdate()方法,但通过cclog,我发现, scheduleUpdate()是执行了.但update()方法并没有被调用. 那是因为在CCLayer中 ...
- OPTAUTH 两步验证详解
先贴图: 在对外网开放的后台管理系统中,使用静态口令进行身份验证可能会存在如下问题: (1) 为了便于记忆,用户多选择有特征作为密码,所有静态口令相比动态口令而言,容易被猜测和破解: (2) 黑客可以 ...
- Logstash中如何处理到ElasticSearch的数据映射
Logstash作为一个数据处理管道,提供了丰富的插件,能够从不同数据源获取用户数据,进行处理后发送给各种各样的后台.这中间,最关键的就是要对数据的类型就行定义或映射. 本文讨论的 ELK 版本为 5 ...
- 模型标准化——预测模型标记语言(PMML)
https://www.cnblogs.com/pinard/p/9220199.html 在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个 ...
- 【BZOJ】【3931】【CQOI2015】网络吞吐量
最短路+最大流 思维难度并不高,其实题面几乎已经把算法讲完了…… 练习模板的好题= = 哦对了,求最短路和最大流的时候都得开long long……QwQ /********************** ...
- ajax file upload 修改
先前 写过 JS 判断上传 文件 大小 后来发现一个问题, 就是单页面运行 js 没有问题, 但是基础呢个到项目中 有些时候 obj_img.dynsrc = file.value; 报错说没有 权限 ...
- PPPOE数据包转换及SharpPcap应用
在最近写的一个程序中需要用到Sniffer功能,但由于通过.net自身的Socket做出来的Sniffer不能达到实际应用的要求(如不能监听WIFI数据包)所以找到了WinPCAP的.NET库Shar ...
- [leetcode]Longest Consecutive Sequence @ Python
原题地址:https://oj.leetcode.com/problems/longest-consecutive-sequence/ 题意: Given an unsorted array of i ...