Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!