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






  • 相关阅读:
    grafana,graphite,influxdb with docker
    InfluxDB通过HTTP API
    REDIS 六. 修复方案
    linux Service start
    应该掌握的JQuery的7个效果
    webssh: gateone
    Linux下使用timedatectl命令时间时区操作详解
    Linux下使用date命令查看和修改时间
    Linux下使用ntpdate进行时间同步
    nginx内置变量
  • 原文地址:https://www.cnblogs.com/jeffen/p/6393408.html
Copyright © 2011-2022 走看看