gpt4 book ai didi

java - 运算符 '+' 不能应用于对象和字符串

转载 作者:行者123 更新时间:2023-12-01 08:49:12 33 4
gpt4 key购买 nike

以下代码:

void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;

[...]
}

在 JDK 8 中编译没有错误(使用 -source 1.6),但在 JDK 6 中失败并显示错误消息:
Operator '+' cannot be applied to java.lang.Object and java.lang.String

虽然我确实理解错误是关于什么的,但为什么使用 JDK 8 进行编译?这在任何地方都有记录吗?

最佳答案

JLS 15.26.2. Compound Assignment Operators状态:

A compound assignment expression of the form E1 op= E2 is equivalent to E1 = (T) ((E1) op (E2)), where T is the type of E1, except that E1 is evaluated only once.



这句话和 Java 6一样至 Java 14 ,并且自 Java 开始以来可能从未改变过。

所以 value += suffixvalue = (Object) (value + suffix) 相同

Java 6 编译器不应该无法编译该语句。

关于java - 运算符 '+' 不能应用于对象和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61232244/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com