【发布时间】:2020-03-01 12:42:33
【问题描述】:
几天前,我在 java 代码中打了一个错字,但它编译并运行良好。 (虽然结果很奇怪。)
我的代码是:
public static void main(String args[]) {
String strOut;
char cSEP = '|';
String sSEP = "|";
strOut = "AA" + cSEP + "BB"; // Correct assignment
System.out.println(strOut); // The result is "AA|BB". This is OK.
strOut = "AA" + + cSEP + "BB"; // No Error : no token between two +
System.out.println(strOut); // The result is "AA124BB"
strOut = "AA" + + sSEP + "BB"; // This is compiler error !!!
System.out.println(strOut);
}
我找不到为什么第二个分配没有错误并且打印了 124。 (当然,'|' 在 ASCII 码中是 124。但为什么是“124”,而不是“|”?)
这是编译器错误吗?或者纠正我还不知道的 java 语法?
【问题讨论】:
-
一个字符,像任何其他原语一样,可以用作数值。字符串不能。我在这里没有看到任何错误。
-
@ernest_k 我说错了:像大多数其他原语一样 :)
-
@Stultuske 我急于使用
+true(它的意思是“真的!”,对吧?)。 -
@AndyTurner 致所有那些自动假设两个积极因素不可能成为消极因素的人......“是的,对!” :)
-
我可能会为此向Error Prone添加支票。
标签: java