9
votes

Quelle est la différence entre la liste et la liste ?

J'ai une question très fondamentale ragarding Java Generics . Je pensais que list et sont homogènes. Ai-je raison ou y a-t-il quelque chose de fondamental que je manque?


0 commentaires

3 Réponses :


7
votes

Les types génériques sont plus pédants.

NUMÉRO NUMÉRO OU UN INCONNU UNE SOUS-CLASSE. Si vous obtenez une telle valeur, ce sera un numéro , mais vous ne pouvez pas donner une valeur de ce type car vous ne savez pas ce qui est valide.

La différence est dans les arguments et les valeurs de retour. xxx


super est utilisé dans quelques endroits pour signifier Le type peut être un type super. par exemple

dans les collections, cette méthode indique que le comparateur doit être capable de comparer le même type ou tout type super. xxx

Cela signifie que vous pouvez avoir xxx


15 commentaires

Ils sont plus spécifiques, signifie juste un nombre pas également d'autre type.


Pourriez-vous fournir des détails sur l'utilité de la liste ?


IMHO n'est pas terriblement utile. ;)


@Peterlawrey Obtenir une question de compilation pour numéros2.add (nouveau entier (2)); ? Cela devrait fonctionner correctement?


@Nandkumar non, Numbers2 est en fait une arrayliste


@Peterlawrey: J'ai utilisé Diamond <> là, non .


@Peterlawrey à partir du point de vue du compilateur, Number2 est une liste pas un ArrayListe . L'instruction chiffres2.add (double.valueof (1d)); ne fonctionne pas aussi.


@gontard correct, le point est; La liste contient un type inconnu qui étend le numéro.


@Peterlawrey rien (mais null ) pourrait être ajouté dans la liste ?


Liste : puisque nous ne faisons pas ce qui est vraiment ? : Vous ne pouvez pas Ajouter Item It: Ceci est une sorte de " Liste de compilation en lecture seule ".


Liste : puisque nous ne faisons pas ce qui est vraiment ? : vous ne pouvez pas lire item à partir de celui-ci: ceci est une sorte de " Compilation de l'écriture uniquement Liste de temps ".


@gontard sorte de mais vous pouvez appeler supprimer (0); ou clair (); dessus. ;)


@gontard Vous pouvez lire un objet à partir de ? Super t Comme chaque objet est un objet


@gontard const est un mot-clé en Java, vous ne pouvez tout simplement pas l'utiliser n'importe où. :RÉ


@Peterlawrey peut être dans Java 10 ;)



3
votes

Les génériques sont compilés des fonctionnalités de la langue du temps, des moyens, ils n'existent pas dans le temps d'exécution. Dans le mécanisme générique, pour les chèques de compilation, ils ne sont pas homogènes, c'est-à-dire si vous souhaitez utiliser le polymorphisme en type générique.

suivant vous donne une erreur de compilation, bien qu'il semble une définition valide: xxx

tandis que xxx

est valide. De plus, vous ne pouvez pas utiliser de types de caractères génériques sur le côté droit: xxx

ne sera pas compilé.


0 commentaires

1
votes

Liste -> Liste des numéro s (ou instances de numéro )

liste -> Liste de tout type qui s'étend numéro


0 commentaires