es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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" });
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error es causado por el uso del método genérico newArrayList de la clase com.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 tipo String 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:

    public List<string> getCommandAliases() {
        return Lists.newArrayList("clickset");
    }
    

    Esto debería crear una nueva lista que contiene un único elemento "clickset" y el error debería estar resuelto.

Comments are closed.