文档章节

isAssignableFrom与instanceof的区别

pangdaTv
 pangdaTv
发布于 2016/04/18 10:00
字数 251
阅读 5
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

举个通俗的例子: 
isAssignableFrom是比较两个模具是否相同;isAssignableFrom针对class对象 
instanceof 是判断物品X是否是由模具A生产出来的;instanceof 针对实例 

isAssignableFrom是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。通常调用格式是Class1.isAssignableFrom(Class2) 调用者和参数都是java.lang.Class类型。  
     
而instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。格式是:object instanceof TypeName;interImpl instanceof inter第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如String,InputStream。  

程序举例: 

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Test {
 public static void main(String[] args) {
  List<Object> list = new ArrayList<Object>();
  List<Object> list2 = new LinkedList<Object>();
  List<Object> list3 = new ArrayList<Object>();
  
  System.out.println(list.getClass().isAssignableFrom(list2.getClass()));
  System.out.println(list.getClass().isAssignableFrom(list3.getClass()));
  
  System.out.println(list instanceof List);
  System.out.println(list instanceof ArrayList);
  System.out.println(list instanceof LinkedList);
 }

}


运行结果为: 
false 
true 
true 
true 
false

本文转载自:http://javapub.iteye.com/blog/764668

上一篇: linux学习线路图
下一篇: java成神之路
pangdaTv
粉丝 3
博文 63
码字总数 2263
作品 0
成都
程序员
私信 提问
instanceof, isinstance,isAssignableFrom的区别

instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 形象地:自身实例或子类实例 instanceof 自身类...

HTCKF
2014/02/20
43
0
Java 类型信息 instanceof、isInstance和isAssignabelFrom

instanceof运算符 只被用于对象引用变量,检查左边的被测试对象 是不是 右边类或接口的 实例化。如果被测对象是null值,则测试结果总是false。 形象地:自身实例或子类实例 instanceof 自身类...

V字仇杀
2017/10/27
36
0
java中instanceOf和Class.isInstance(obj)的对比

一.常用Java类检测方法 [1] instanceOf 运算符 instanceOf是运算符只被用于对象引用变量,检查左边对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。 [2] Clas...

IamOkay
2014/10/27
3.7K
2
instanceOf,isInstance,Class,isAssignableFrom区别比较

instanceOf和isInstance()执行类型检查的时候考虑到了继承结构,并且比较的是实例化后的对象。==和equals比较的是实际对象对应的Class对象,没有考虑继承结构。 A instanceOf B A是否是B的子类...

HappyBoyLi
2017/12/01
0
0
Jersey采用模板Freemarker输出

简介 首先来说一下什么是jersey,他是实现了restful风格的其中一个框架,当然除了jersey还有其他的,例如 apache axis2 apache CXF spring mvc 也算上一个,但不是标准的 不过在平时在开发w...

小彬彬_
2016/08/25
412
2

没有更多内容

加载失败,请刷新页面

加载更多

在C语言中“静态”是什么意思?

我已经在C代码的不同地方看到了static一词。 这就像C#中的静态函数/类(实现在对象之间共享)吗? #1楼 多文件变量作用域示例 在这里,我说明了静态如何影响多个文件中函数定义的范围。 交流...

javail
10分钟前
3
0
利用 FC + OSS 快速搭建 Serverless 实时按需图像处理服务

作者:泽尘 简介 随着具有不同屏幕尺寸和分辨率设备的爆炸式增长,开发人员经常需要提供各种尺寸的图像,从而确保良好的用户体验。目前比较常见的做法是预先为一份图像存放多份具有不同尺寸的...

阿里巴巴云原生
13分钟前
2
0
前端架构最佳实践

Folders-by-Feature Structure 胜过 Folders-by-Type Structure

lilugirl
23分钟前
3
0
Seata AT 模式启动源码分析

从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分...

后端进阶
24分钟前
4
0
Python中“自我”一词的目的是什么?

Python中self词的目的是什么? 我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。 为了说明这一点,在Ruby中,我可以这样做: class myClass ...

技术盛宴
26分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部