Je n'ai pas encore lu les commentaires de Bruce Eckel, mais il me semble quand-même que les generics apportent un surcroît de fiabilité.
Par exemple, pour faire un vecteur de chaînes, on devait auparavant créer un vecteur d'Object, et transtyper chaque élément au moment de son utilisation. S'assurer de la correction du programme au moment de sa rédaction était assez difficile, car la vérification de type se faisait au moment de l'exécution.
Avec la possibilité de déclarer un Vector< String >, cette vérification se fait au moment de la compilation !
Pour moi, c'est de nature à permettre l'écriture de programmes plus robostes, ou tout simplement à faciliter le débogage: on passe d'un bug en runtime à un programme qui ne compile même pas, c'est pas rien :-) Sans parler de l'amélioration de la lisibilité avec la disparition de bien des transtypages...
[^] # Re: Mise au point
Posté par ChrisJ (site web personnel) . En réponse à la dépêche Java 2 Standard Edition version 5.0. Évalué à 4.
Par exemple, pour faire un vecteur de chaînes, on devait auparavant créer un vecteur d'Object, et transtyper chaque élément au moment de son utilisation. S'assurer de la correction du programme au moment de sa rédaction était assez difficile, car la vérification de type se faisait au moment de l'exécution.
Avec la possibilité de déclarer un Vector< String >, cette vérification se fait au moment de la compilation !
Pour moi, c'est de nature à permettre l'écriture de programmes plus robostes, ou tout simplement à faciliter le débogage: on passe d'un bug en runtime à un programme qui ne compile même pas, c'est pas rien :-) Sans parler de l'amélioration de la lisibilité avec la disparition de bien des transtypages...