El siguiente código:
void someMethod(Object value)
{
String suffix = getSuffix();
if (suffix != null)
value += suffix;
[...]
}
compila sin errores en JDK 8 (usando -source 1.6), pero falla en JDK 6 con el mensaje de error:
Operator '+' cannot be applied to java.lang.Object and java.lang.String
Si bien entiendo de qué se trata el error, ¿por qué esto se compila con JDK 8? ¿Está documentado en alguna parte?
value = value + suffix
es completamente legal independientemente del tipo de valor. Por lo tanto, me parece que tambiénvalue += suffix
debería ser legal.