Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

373
Vistas
¿Cómo envolver un objeto de colección de una subclase?

Estoy creando una matriz en la que cada elemento de la matriz es una lista enlazada de cadenas. DEBO usar la siguiente implementación:

Cree una clase que envuelva un objeto LinkedList (y también amplíe una clase determinada) y haga que cada elemento de la matriz sea una instancia de esta clase. Me dan la siguiente clase que necesito extender (que no puedo cambiar, y DEBO usar):

 public Class1{ java.util.Collection<java.lang.String> collection; Class1(java.util.Collection<java.lang.String> collection){ this.collection = collection; } public void add(String str) { collection.add(str); }

y Class1 tiene un par de métodos más relacionados con la colección (eliminar, etc.). Quiero crear una clase que amplíe Class1 y envuelva un objeto LinkedList. Quiero que esta clase cumpla con dos requisitos:

  1. use la implementación Class1 para los métodos de recopilación (agregar, eliminar, etc.)
  2. tener otros métodos propios, por ejemplo, el siguiente método getFirst().

Así que esto es lo que hice:

 public class Bucket extends Class1 { LinkedList<String> linkedList; Bucket(){ super(new LinkedList<String>()); } public String getFirst(){ linkedList.getFirst(); } }

Tengo una clase principal que intenta ejecutar el siguiente código

 Bucket bucket = new Bucket(); bucket.add("5"); bucket.getFirst();

Esto cae en la línea bucket.getFirst(), porque obviamente la lista vinculada en la clase Bucket es nula, no es el objeto LinkedList que envié a Class1, por lo que el método getFirst() en Bucket está tratando de operar en nulo .

¿Como puedo resolver esto? ¿Cómo puedo conectar la LinkedList que envío a Class1 con la LinkedList que tengo en la clase Bucket? Gracias por leer hasta ahora.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Sí, en su código actual, linkedList dentro de la clase Bucket no apunta a ningún objeto , por lo que arroja java.lang.NullPointerException , por lo que para resolver el problema, puede seguir el siguiente enfoque:

Básicamente, una LinkedList IS-A Collection , por lo que simplemente puede encasillar el objeto de collection (de la superclase Class1 ) al objeto linkedList y return el primer elemento como se muestra a continuación:

 public class Bucket extends Class1 { LinkedList<String> linkedList; public Bucket(){ super(new LinkedList<String>()); //now typecast and assign collection to linkedList linkedList = (LinkedList<String>)collection; } public String getFirst() { return linkedList.getFirst(); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda