zoukankan      html  css  js  c++  java
  • Java之"instanceof"和"isInstance"代码举例

     源码:

     1 /**
     2  * @Date:2018-04-20
     3  * @Description:判断Instance
     4  * - instanceof方法返回一个boolean类型的值,意在告诉我们对象是不是某个特定的类型实例。
     5  * - isInstance方法则是Class类中的一个Native方法,也是用于判断对象类型的。
     6  **/
     7 public class InstanceDemo {
     8 
     9     static void test(Object x) {
    10         System.out.println("Testing x of type " + x.getClass());
    11         System.out.println("x instanceof A " + (x instanceof A));
    12         System.out.println("x instanceof B " + (x instanceof B));
    13         System.out.println("A.isInstance(x) " + A.class.isInstance(x));
    14         System.out.println("B.isInstance(x) " +
    15                 B.class.isInstance(x));
    16         System.out.println("x.getClass() == A.class " +
    17                 (x.getClass() == A.class));
    18         System.out.println("x.getClass() == B.class " +
    19                 (x.getClass() == B.class));
    20         System.out.println("x.getClass().equals(A.class)) " +
    21                 (x.getClass().equals(A.class)));
    22         System.out.println("x.getClass().equals(B.class)) " +
    23                 (x.getClass().equals(B.class)));
    24     }
    25 
    26     public static void main(String[] args) {
    27         test(new A());
    28         System.out.println("-------------------------");
    29         test(new B());
    30     }
    31 
    32 }
    33 
    34 class A {
    35 }
    36 
    37 class B extends A {
    38 }

     运行结果:

     1 Testing x of type class org.study2.reflection.A
     2  x instanceof A true
     3  x instanceof B false
     4  A.isInstance(x) true
     5  B.isInstance(x) false
     6  x.getClass() == A.class true
     7  x.getClass() == B.class false
     8  x.getClass().equals(A.class)) true
     9  x.getClass().equals(B.class)) false
    10  -------------------------
    11  Testing x of type class org.study2.reflection.B
    12  x instanceof A true
    13  x instanceof B true
    14  A.isInstance(x) true
    15  B.isInstance(x) true
    16  x.getClass() == A.class false
    17  x.getClass() == B.class true
    18  x.getClass().equals(A.class)) false
    19  x.getClass().equals(B.class)) true
  • 相关阅读:
    【BZOJ】1552/3506 [Cerc2007]robotic sort
    【BZOJ】1014 [JSOI2008]火星人prefix
    【BZOJ】1500: [NOI2005]维修数列
    【51NOD-0】1046 A^B Mod C
    【51NOD-0】1019 逆序数
    【51NOD-0】1018 排序
    【51NOD-0】1012 最小公倍数LCM
    The Grove(poj 3182)
    Iahub and Permutations(codeforces 314c)
    多边形之战(bzoj 2927)
  • 原文地址:https://www.cnblogs.com/gongxr/p/8889337.html
Copyright © 2011-2022 走看看