Der folgende Code:
void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;
[...]
}
Kompiliert fehlerfrei in JDK 8 (mit -source 1.6), schlägt jedoch in JDK 6 mit der Fehlermeldung fehl:
Operator '+' cannot be applied to java.lang.Object and java.lang.String
Obwohl ich verstehe, worum es bei dem Fehler geht, warum wird dies mit JDK 8 kompiliert? Ist das irgendwo dokumentiert?
value = value + suffix
ist unabhängig von der Art des Werts völlig legal. Es scheint mir value += suffix
also auch legal zu sein.