java中的instanceOf运算符

时间:2017-04-01 11:40:04

标签: java instanceof

为什么Java中的这行代码不能打印消息?

System.out.println("a instanceof String:"+a instanceof String);

为什么它只是打印true而不是之前的String ???

3 个答案:

答案 0 :(得分:8)

啊,运营商优先的乐趣。那条线是有效的:

System.out.println(("a instanceof String:" + a) instanceof String);

...所以你正在进行字符串连接,然后检查结果是否是一个字符串。因此,无论true的值如何,总是打印a

你只需要括号

System.out.println("a instanceof String:" + (a instanceof String));

请参阅Java tutorial page on operators以获取优先列表。

答案 1 :(得分:3)

您的代码将按如下方式执行:

<强> System.out.println(("a instanceof String:"+a) instanceof String);

因此,整个字符串即("a instanceof String:"+a)已被考虑进行instanceof检查。

要打印"a instanceof String:true",您需要在正确的位置使用括号:

System.out.println("a instanceof String:" + (a instanceof String));

答案 2 :(得分:1)

你必须使用括号。

System.out.println(("a instanceof String:"+a) instanceof String);