以下代码:
void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;
[...]
}
使用-source 1.6在JDK 8中可以无错误编译,但在JDK 6中会出现以下错误信息:
Operator '+' cannot be applied to java.lang.Object and java.lang.String
虽然我理解错误的原因,但为什么这可以在JDK 8中编译?有没有任何文档可供参考?
value = value + suffix
是完全合法的,无论值的类型如何。因此,在我看来,value += suffix
也应该是合法的。 - Grodriguez