Le code suivant:
void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;
[...]
}
se compile sans erreurs dans JDK 8 (en utilisant -source 1.6), mais échoue dans JDK 6 avec le message d'erreur:
Operator '+' cannot be applied to java.lang.Object and java.lang.String
Bien que je comprenne de quoi s'agit l'erreur, pourquoi cela se compile-t-il avec JDK 8? Est-ce documenté quelque part?
value = value + suffix
est totalement légale quel que soit le type de valeur. Il me semble donc que cela value += suffix
devrait aussi être légal.