Estoy tratando de implementar una colección vinculada usando genéricos, algo como el siguiente.Error de compilación de creación de matrices genéricas de la clase interna
public class A<E> {
private class B {
private B[] b;
private E item;
private B() {
this.b = new B[2];
}
} // end inner class B
} // end class A
A es la recogida y B un elemento o nodo de la colección con una matriz referencia sucesores/predecesores y un elemento.
La creación de matriz no está permitida. El error que recibo es generic array creation
. ¿Tengo razón al pensar que lo que realmente está creando es una matriz de A<E>.B
?
Si no, ¿cuál es la causa del error?
Si es así, ¿cómo puedo evitar esto?
Obviamente he omitido una cantidad sustancial de código, si lo que he proporcionado no es suficiente, por favor hágamelo saber. Cualquier consejo sería apreciado. Gracias.
EDIT 1: debería haber mencionado que el tipo parametrizado debe ser la misma en A
como en B
. Por lo tanto, no es posible pasar <E>
a la clase interna, ya que crea E#2
y deja A
con E#1
.
específicamente una respuesta a su pregunta, pero sería mejor diseño para tener dos variables ' predecesor 'y' sucesor 'de tipo B en lugar de una matriz de dos elementos. Haría que tu clase sea más fácil de leer. Supongo que también haría que tu problema desapareciera. –
WRT Edit1, pruebe una 'clase estática B' y no tendrá el problema de nomenclatura. Sin embargo, la matriz aún no funcionará, ya que es Genérica. –
También puede evitar esto mediante el uso de una colección genérica en lugar de una matriz. – trutheality