java中的instanceOf运算符

java中的instanceOf运算符,java,instanceof,Java,Instanceof,为什么Java中的这行代码没有打印消息 System.out.println("a instanceof String:"+a instanceof String); 为什么只打印true而不打印前面的字符串??啊,运算符优先的乐趣。这条线实际上是: System.out.println(("a instanceof String:" + a) instanceof String); 。。。因此,您要进行字符串连接,然后检查结果是否为字符串。因此,无论a的值是多少,它都将始终打印true 你

为什么Java中的这行代码没有打印消息

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

为什么只打印true而不打印前面的字符串??

啊,运算符优先的乐趣。这条线实际上是:

System.out.println(("a instanceof String:" + a) instanceof String);
。。。因此,您要进行字符串连接,然后检查结果是否为字符串。因此,无论
a
的值是多少,它都将始终打印
true

你只需要括号

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

请参阅以获取优先级列表。

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

System.out.println((“字符串实例:”+a)字符串实例)

因此,对于
instanceof
检查,考虑了整个字符串,即
(“字符串实例:”+a)

要打印,
“字符串实例:true”
,需要在正确的位置使用括号:

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

你必须使用括号

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

也许你应该告诉我们
a
是什么?@RC.:事实上,这并不重要。“但是是的,a会更好。”琼斯凯我看到了你的答案,所以是的,在这种情况下没关系;)