Java “error: tipos incompatibles: la variable de inferencia E tiene límites incompatibles” error
Así que estoy probando algo en Java (un mod de Minecraft forge). Y cuando compilo, sigo recibiendo este error:
error: tipos incompatibles: la variable de inferencia E tiene límites incompatibles
return Lists.newArrayList((Object[])new String[] { "clickset" });
^
restricciones de igualdad: String
límites inferiores: Object
donde E es una variable de tipo:
E extends Object declarado en el método <e>newArrayList(E...)
El código es:
public List<string> getCommandAliases() {
return Lists.newArrayList((Object[])new String[] { "clickset" });
}
davy.ai
El error es causado por el uso del método genérico
newArrayList
de la clasecom.google.common.collect.Lists
. El método está declarado como<e> List<e> newArrayList(E... elements)
, lo que significa que puede aceptar cualquier tipo de elementos. Sin embargo, en el código dado se pasa un array de tipoString
al método, lo cual entra en conflicto con los límites genéricos declarados en el método.Para solucionar el error, elimine la conversión a
Object[]
y pase directamente el array de strings al método de la siguiente manera:Esto debería crear una nueva lista que contiene un único elemento
"clickset"
y el error debería estar resuelto.