博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
阅读量:4677 次
发布时间:2019-06-09

本文共 1466 字,大约阅读时间需要 4 分钟。

Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。   

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

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

转载于:https://www.cnblogs.com/developer-os/p/7700207.html

你可能感兴趣的文章
CSS3学习笔记--media query 响应式布局
查看>>
NHibernate.3.0.Cookbook第四章第2节的翻译
查看>>
19.C#逐一介绍IEnumerable和IEnumerable<T>中的扩展方法(10.3-10.5)
查看>>
听说最近你读过不少书
查看>>
linux之Ubuntu下Django+uWSGI+nginx部署
查看>>
【转】Struts1.x系列教程(2):简单的数据验证
查看>>
HTML head元素
查看>>
requireJS
查看>>
Poj3667Hotel线段树
查看>>
待嫁闺中:PPTV的辛酸史
查看>>
作用域
查看>>
CSS文本方向
查看>>
Dev Grid拖拽移动行
查看>>
Read
查看>>
this关键字的构造方法的使用
查看>>
Spring的数据库操作---- Spring框架对JDBC的整合---- Spring的数据库操作
查看>>
2016/12/14---- C3P0
查看>>
python tkinter组件学习
查看>>
调用wx.request接口时需要注意的几个问题
查看>>
HotSpot 自动内存管理笔记与实战
查看>>