Quelqu'un peut-il expliquer quelle est la différence entre ces deux instanciations de la classe ArrayList
?Transmettre la variable de type lors de l'instanciation d'une classe générique
List<Integer> intList = new ArrayList();
List<Integer> intList = new ArrayList<Integer>();
Je savais que le compilateur efface la variable de type, à savoir Integer
, lors de la compilation à bytecode et l'exemple ci-dessus fonctionne aussi bien exactement la même chose. Je me demande s'il y a un quelconque avantage à passer la variable de type (Integer
) sur le côté droit puisqu'elle est déjà déclarée sur la gauche? Autant que je peux trouver sur le web, ils utilisent tous le dernier, mais je ne vois pas pourquoi je devrais le déclarer deux fois des deux côtés.
Il y a la fonction Project Coin de l'opérateur du diamant ('<>'), que je pense être dans JDK7, qui vous permet d'écrire 'List ints = new ArrayList <>();'. L'algorithme de détermination du type fonctionne de la même manière que pour les méthodes génériques. –
Je suis à la recherche des nouvelles fonctionnalités de JDK7. C'est une bonne. – gigadot