zoukankan      html  css  js  c++  java
  • Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别

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

    Java代码  收藏代码
    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.     }  
    60. }  

     结果:

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






  • 相关阅读:
    mysql使用命令备份和导入导出数据
    jmeter中json提取器提取多个参数给下游接口传参
    jmeter使用正则提取器返回多个参数给下游接口入参使用
    linux下分布式部署jmeter
    使用java远程启动jmeter服务报错,报错内容:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
    Java中看今天是星期几,礼拜几
    java读取xml文件的四种方法
    Oracle 恢复删除的表
    重启Oracle命令
    Android 资源
  • 原文地址:https://www.cnblogs.com/jeffen/p/6393408.html
Copyright © 2011-2022 走看看