Nous avions laissé nos héros au moment où ils allaient se rendre compte que List<Integer>
n’était pas une extension de List<Number>
. Emplis de désarroi, ils se tournèrent donc vers le type anonyme ?
, qui va leur permettre de contourner ce problème. Même si ce chemin n’est certes pas exempt d’embûches, cela leur permettra au moins de terminer le tour d’horizon des génériques, commencé la semaine dernière.
Archives par mot-clé : Génériques
Lumière sur les génériques – 1
En ces périodes de restrictions de prestations sociales, utiliser les génériques est une recommandation classique. Ne reculant devant rien pour satisfaire à l’effort national de réduction des déficits, je me suis lancé dans cette mise en lumière, en me disant qu’il en sortirait bien quelques chose.
Les génériques, c’est un peu comme le vélo, ça a tendance à marcher tout seul. Et si ce n’est pas le cas, tout le monde sait qu’il est inutile de chercher à comprendre, et qu’il sera beaucoup plus efficace de bombarder son code de casts aléatoirement distribués jusqu’à ce que ça marche à nouveau.
Et puis, à un moment, malgré ce remède pourtant préconisé par le ministère de la Santé, ça déraille vraiment, et là on se retrouve les mains dans le cambouis, en se demandant ce qui a bien pu se passer.
Les génériques sont passés dans les mœurs depuis Java 5. L’impact a été énorme, puisque des centaines d’API ont été adaptées lors de leur introduction. Dans la plupart des cas, leur utilisation est naturelle, ce qui les rend très agréables à utiliser. Mais leur spécification recèle des mystères, et parfois des erreurs de compilation cryptiques apparaissent.
C’est à un petit voyage sous ces arcanes que je te convie, cher et précieux lecteur. Il ne nous mènera pas beaucoup plus loin que l’incomparable JLS, mais peut-être y découvriras-tu des paysages nouveaux ?