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

194
Vistas
¿Cómo se manejaron los tipos sin genéricos en ArrayList antes de la versión 1.5 de Java?

Tengo una pregunta sobre la historia de Java.
Java ha tenido ArrayList desde 1.2.
Java tiene genéricos desde la versión 1.5.

¿Cómo fue la implementación de ArrayList sin genéricos para definir el tipo?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Todo se hizo con Object (y hubo mucho casting involucrado), por ejemplo:

 ArrayList list = new ArrayList(); list.add(new Thingy()); // ... Thingy t = (Thingy)list.get(0); // Note ---^^^^^^^^

La lista solo sabía que lo que almacenaba era Object , dependía del código que usaba la lista para volver a convertir a un tipo útil.

Como puede imaginar, esto conduce a todo tipo de cosas desagradables: puede colocar el tipo de objeto incorrecto en la lista y luego obtener ClassCastException s más tarde cuando intenta convertirlo en el tipo que esperaba; si cambiaba lo que estaba en la lista, tenía que cambiar sus yesos en todas partes e inevitablemente olvidar uno, etc., etc. Los genéricos ayudaron a eliminar esos puntos débiles.

about 4 years ago · Santiago Trujillo Denunciar

0

Antes de los genéricos, ArrayList tiene el objeto como tipo para que pueda insertar y recuperar el tipo de objeto, lo que significa que debe convertirlos mientras recupera el tipo respetado. Después de los genéricos, se eliminó este tipo de código redundante.

Si ha mirado de cerca los documentos genéricos , su pregunta específica ha sido respondida

Eliminación de yesos.

 The following code snippet without generics requires casting: List list = new ArrayList(); list.add("hello"); String s = (String) list.get(0);

Cuando se reescribe para usar genéricos, el código no requiere conversión:

 List<String> list = new ArrayList<String>(); list.add("hello"); String s = list.get(0); // no cast
about 4 years ago · Santiago Trujillo Denunciar

0

En realidad, no deberías hacer este tipo de preguntas en stackoverflow. Lo que todos esperan es un código tuyo para depurar... Pero de todos modos, pareces ser nuevo en stackoverflow...

También puede usar arraylist sin genéricos. Por ejemplo, si usa genéricos para contener elementos de un tipo particular, se ve así...

 ArrayList<String> list=new ArrayList<>();

Si no quiere usar genéricos, simplemente puede usar esto

 ArrayList list =new ArrayList();

Déjame decirte la gran desventaja de usar sin genéricos. Si no usas genéricos, asume todo como objetos. Por lo tanto, debes escribirlos a tu tipo de datos particular cada vez que recuperas elementos.

Por ejemplo

 for (Object o:list) { String s=(String)o; System.out.println(s); }

es lo que tiene que hacer si no usa genéricos.. Si usa genéricos

después

 for(String s:list) { System.out.println(s) }

Espero que esto ayude....:)

about 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