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

  1. package com.bill99.pattern;
  2. public class AssignableTest {
  3. public AssignableTest(String name) {
  4. }
  5. /**
  6. * 判断一个类是否是另一个类的父类
  7. * 是打印true
  8. * 否打印false
  9. */
  10. public static void testIsAssignedFrom1() {
  11. System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
  12. }
  13. /**
  14. * 判断一个类是否是另一个类的父类
  15. * 是打印true
  16. * 否打印false
  17. */
  18. public static void testIsAssignedFrom2() {
  19. System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
  20. }
  21. /**
  22. * 判断一个类是否和另一个类相同
  23. * 是打印true
  24. * 否打印false
  25. */
  26. public static void testIsAssignedFrom3() {
  27. System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
  28. }
  29. /**
  30. * 判断str是否是Object类的实例
  31. * 是打印true
  32. * 否打印false
  33. */
  34. public static void testInstanceOf1() {
  35. String str = new String();
  36. System.out.print("str是Object的实例:");
  37. System.out.println(str instanceof Object);
  38. }
  39. /**
  40. * 判断o是否是Object类的实例
  41. * 是打印true
  42. * 否打印false
  43. */
  44. public static void testInstanceOf2() {
  45. Object o = new Object();
  46. System.out.print("o是Object的实例:");
  47. System.out.println(o instanceof Object);
  48. }
  49. public static void main(String[] args) {
  50. testIsAssignedFrom1();
  51. testIsAssignedFrom2();
  52. testIsAssignedFrom3();
  53. testInstanceOf1();
  54. testInstanceOf2();
  55. }
  56. }

结果:

String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true

Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别的更多相关文章

  1. instanceof关键字 与 getClass()

    在equals()中使用getClass进行类型判断 我们在覆写equals()方法时,一般都是推荐使用getClass来进行类型判断,不是使用instanceof.我们都清楚instanceof的作 ...

  2. 判断一个类是否为另一个类的实例 instanceof关键字和isAssignableFrom方法的区别

    Which of the following is better? a instanceof B or B.class.isAssignableFrom(a.getClass()) The only ...

  3. Class.isAssignableFrom(Class clz)与instanceof与Class.isInstance(Object obj) 的区别和联系

    编程的时候可能会遇到一个不知道它属于哪个类的对象,我们可以用下列运算符或者方法来判断.  1.instanceof instanceof是运算符只被用于对象引用变量,检查左边的被测试对象是不是右边类或 ...

  4. Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法   ...

  5. Java中isAssignableFrom()方法与instanceof()方法用法

    一句话总结: isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断. isAssignableFrom()方法是判断是否为某个类的父类, ...

  6. instanceof关键字使用的方法(解决转型异常ClassCastException)

    一丶问题显现: 当你是父类的情况下,像使用子类的特定功能,就需要向下转型,但向下转型有可能会报错(ClassCastException) 而instanceof关键字就是解决异常的小能手,他能判断是否 ...

  7. [zz]Java中的instanceof关键字

    1.What is the 'instanceof' operator used for? stackoverflow的一个回答:http://stackoverflow.com/questions/ ...

  8. Java中instanceof关键字的用法

    Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. instanc ...

  9. Java instanceof 关键字是如何实现的?

    作者:RednaxelaFX链接:https://www.zhihu.com/question/21574535/answer/18998914来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...

随机推荐

  1. Html学习笔记3

    1表格的标题和表头: <table> <caption>成绩单</caption> <tr> <th>姓名</th> <t ...

  2. 一文犀利看懂中美贸易战 z

    如今的中国面对着前所未有的经济全球化的大环境.面对着如何成为创新性国家的重任. 钛媒体注:美国东部时间 7 月 6 日凌晨0:01 分,美国正式开始对 340 亿美元的中国产品加征 25% 的关税,这 ...

  3. 关于面试总结13-app测试面试题

    前言 现在面试个测试岗位,都是要求全能的,web.接口.app啥都要会测,那么APP测试一般需要哪些技能呢? 面试app测试岗位会被问到哪些问题,怎样让面试管觉得你对APP测试很精通的样子? 本篇总结 ...

  4. java获取视频播第一帧

    FFMPEG 功能很强大,做视频必备的软件.大家可通过 http://ffmpeg.org/ 了解.Windows版本的软件,可通过 http://ffmpeg.zeranoe.com/builds/ ...

  5. Java并发编程的艺术(六)——线程间的通信

    多条线程之间有时需要数据交互,下面介绍五种线程间数据交互的方式,他们的使用场景各有不同. 1. volatile.synchronized关键字 PS:关于volatile的详细介绍请移步至:Java ...

  6. [Android Pro] 跨平台反编译工具 jadx (ubuntu亲测 可用)

    github :  https://github.com/skylot/jadx 输入: .dex, .apk, .jar or .class 输出: 资源文件 和  class文件 不支持重新打包, ...

  7. Java 正则表达式(精华)

    英文:Jakob Jenkov译文:严亮链接:ifeve.com/java-regex/ Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达 ...

  8. [转]Linux的SOCKET编程详解

    From : http://blog.csdn.net/hguisu/article/details/7445768 1. 网络中进程之间如何通信 进 程通信的概念最初来源于单机系统.由于每个进程都在 ...

  9. 程序中try、throw、catch三者之间的关系

    c++程序中,采用一种专门的结构化处理逻辑的异常处理机制. 1.try语句 try语句块的作用是启动异常处理机制,检测try语句块中程序语句执行时可能出现的异常. try语句块总是与catch一同出现 ...

  10. 5句mysql语句

    显示表的结构: mysql> DESCRIBE MYTABLE; 往表中加入记录 mysql> insert into MYTABLE values ("hyq",&q ...