Il seguente codice:
void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;
[...]
}
compila senza errori in JDK 8 (usando -source 1.6), ma fallisce in JDK 6 con il messaggio di errore:
Operator '+' cannot be applied to java.lang.Object and java.lang.String
Mentre capisco di cosa si tratta l'errore, perché questo viene compilato con JDK 8? Questo è documentato ovunque?
value = value + suffix
è completamente legale indipendentemente dal tipo di valore. Quindi mi sembra che value += suffix
dovrebbe essere anche legale.