不是说instanceof前面操作数地编译时类型与后面的类相同或者是后面类的父类么
下面这个编译时类型String 不符合要求怎么也可以用呢String s = "str";
boolean isObject = s instanceof Object;

解决方案 »

  1.   

    Object是Java中所有对象的基类。而String显然是个对象,所以必然是true。你试试看用byte、int、float、double?
      

  2.   

    s是String类的实例。String类是Object类的子类。所以s是Object的实例!
      

  3.   

    用前面的条件判断就是:byte、int、float、double不是Object类、也不是Object类的父类
    所以不能使用 instanceof Object我这个编译类型是String啊 String 不是Object类、也不是Object类的父类
    为什么可以这么用呢希望表达清楚了 求前辈指点
      

  4.   

    instanceof检测的是不是某个类或其子类的实例或者实现某个接口。
      

  5.   

    谢谢LS各位
    貌似没有反 
    instanceof检测的是不是某个类或其子类的实例或者实现某个接口

    instanceof前面操作数地编译时类型与后面的类相同或者是后面类的父类并不冲突,并且如果不满足后者会引起编译错误
    下面这段不就是这样的么 public static void main(String[] args) 
    {
                    
                    Object hello = "Hello";
                    //Math类是编译类型Object的子类 编译通过
                    System.out.println("字符串是否是Math类的实例:" + (hello instanceof Math));
    String a = "Hello";
    //String类既不是Math类,也不是Math类的父类,所以下面代码编译无法通过
    System.out.println("字符串是否是Math类的实例:" + (a instanceof Math));
    }再讲解一下呗 谢谢大侠们
      

  6.   

    是不是Object作为转换目标类是个特例呢 好吧lz是我马甲 懒得换号了
      

  7.   

    instanceof 不是测试它左边的对象是否是它右边的类的实例吗
      

  8.   

    我在http://topic.csdn.net/t/20051208/14/4446224.html找来2个回复作为解释
    求围观 错了  求被围观
      

  9.   

    a instanceof b表示b是父类,a是子类,a是b的实例