instanceof
不是说instanceof前面操作数地编译时类型与后面的类相同或者是后面类的父类么下面这个编译时类型String 不符合要求怎么也可以用呢
--------------------编程问答-------------------- Object是Java中所有对象的基类。而String显然是个对象,所以必然是true。
String s = "str";
boolean isObject = s instanceof Object;
你试试看用byte、int、float、double? --------------------编程问答-------------------- s是String类的实例。String类是Object类的子类。所以s是Object的实例! --------------------编程问答-------------------- 哎呀别逆推啊 我现在想用instanceof来判断
在判断前我想确定是不是可以用instanceof判断
确定依据就是:
用前面的条件判断就是:byte、int、float、double不是Object类、也不是Object类的父类
所以不能使用 instanceof Object
我这个编译类型是String啊 String 不是Object类、也不是Object类的父类
为什么可以这么用呢
希望表达清楚了 求前辈指点
--------------------编程问答-------------------- instanceof检测的是不是某个类或其子类的实例或者实现某个接口。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你理解正好反了。 --------------------编程问答-------------------- 谢谢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));
}
再讲解一下呗 谢谢大侠们 --------------------编程问答-------------------- 是不是Object作为转换目标类是个特例呢
好吧lz是我马甲 懒得换号了 --------------------编程问答-------------------- instanceof 不是测试它左边的对象是否是它右边的类的实例吗 --------------------编程问答-------------------- 我在http://topic.csdn.net/t/20051208/14/4446224.html找来2个回复作为解释
求围观
错了 求被围观 --------------------编程问答-------------------- a instanceof b表示b是父类,a是子类,a是b的实例
--------------------编程问答-------------------- 子类与父类理解错了......
补充:Java , Java SE