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

    原地址:http://topic.csdn.net/t/20050127/15/3758173.html

    我略作了下修改

    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

  • 相关阅读:
    利用IDE自动生成Logger变量
    浏览器跨域请求
    linux shell 跟踪网站变动
    linux shell 查找网站中无效的链接
    linux shell 网页相册生成器
    Shell帮你掌管上千台服务(多线程)
    Ansible小实例
    Shell监控公网IP-变化邮件报警
    ffmpeg顺时针或逆时针旋转视频90,180度
    Download youtube videos with subtitles using youtube-dl
  • 原文地址:https://www.cnblogs.com/gym2017/p/7241283.html
Copyright © 2011-2022 走看看