码迷,mamicode.com
首页 > 其他好文 > 详细

Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别

时间:2017-10-20 18:24:31      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:ace   参数   space   oid   pen   assign   另一个   子类   key   

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.     }  

Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别

标签:ace   参数   space   oid   pen   assign   另一个   子类   key   

原文地址:http://www.cnblogs.com/developer-os/p/7700207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!