希望能给出isInstance()的用法,主要想弄明白是谁与谁比较(是is前边的对象与括号中的对象比较??还是反过来)
还有isAssignableFrom()方法,主要也是想弄明白是谁与谁进行比较,最好有个实例。谢谢

解决方案 »

  1.   

    public boolean isInstance(Object obj)
    判定指定的 Object 是否与此 Class 所表示的对象赋值兼容。此方法是 Java 语言 instanceof 运算符的动态等效方法。如果指定的 Object 参数非空,且能够在不引发 ClassCastException 的情况下被强制转换成该 Class 对象所表示的引用类型,则该方法返回 true;否则返回 false。
    特别地,当该 Class 对象表示一个已声明的类时,若指定的 Object 参数是所表示类(或其任一子类)的一个实例,则此方法返回 true;否则返回 false。如果此 Class 对象表示一个数组类,且通过身份转换或扩展引用转换,指定的 Object 参数能转换为一个数组类的对象,则返回 true;否则返回 false。如果此 Class 对象表示一个接口,且指定 Object 参数的类或任一超类实现了此接口,则此方法返回 true;否则返回 false。如果此 Class 对象表示一个基本类型,则此方法返回 false。
    参数:
    obj - 要检查的对象
    返回:
    如果 obj 是此类的实例,则返回 true
    从以下版本开始:
    JDK1.1============================================
      

  2.   


                    String str = "";
    Object o = new Object();
    System.out.println(String.class.isInstance(o));
    System.out.println(String.class.isInstance(str));
    System.out.println(String.class.isAssignableFrom(Object.class));
    System.out.println(Object.class.isAssignableFrom(Object.class));
    System.out.println(Object.class.isAssignableFrom(String.class));输出结果false
    true
    false
    true
    true
    isInstance的参数为对象。例:
    调用者.getClass().isInstance(调用者本身或者父类接口的实例[object除外])返回true,反之falseisAssignableFrom的参数为class,例:
    调用者.getClass().isAssignableFrom(调用者本身或者子类的class)返回true,反之false