6
votes

Que signifie le terme "restreint" en Java?

J'ai trouvé le mot dans mon manuel sur le chapitre sur les collections et les génériques.

La phrase était

"car le type d'objets d'une classe générique est restreint, le Les éléments sont accessibles sans coulée. "

Pour le dire simplement, quelqu'un peut-il expliquer ce que signifie la phrase?


1 commentaires

4 Réponses :


0
votes

Cela signifie que si vous avez une classe générique, par exemple une collection, de type t , vous ne pouvez mettre que des instances de t là.

Par exemple : xxx


1 commentaires

FYI, votre réponse complète n'est pas pertinente pour la question posée. Voir la réponse de @ FastCodejava pour savoir comment répondre à la question



1
votes

vérifier ma propre réponse ici.

car le type d'objets d'une classe générique est restreint, le Les éléments sont accessibles sans casting

L'un des avantages de l'utilisation de code générique sur le type brut est que vous n'avez pas besoin doit renvoyer le résultat dans le type approprié explicitement. Il est implicitement fait par compilateur à l'aide d'une technique appelée Erasure de type < / code> .

Supposons, prenons l'exemple des génériques. xxx

Ceci se produit car la liste a été déclarée pour stocker uniquement la liste des entiers


0 commentaires

7
votes

Lorsque vous utilisez une collection sans génériques, la collection va accepter objet fort>, ce qui signifie tout en Java (et va également vous donner objet fort> si vous essayez Pour obtenir quelque chose):

List<String> objects = new ArrayList<String>();
objects.add( "Some text" );
objects.add( "Another text" );

String text = objects.get( 0 ); // the collection knows it holds only String objects to the return when trying to get something is always a String

objects.add( 1 ); //this one is going to cause a compilation error, as this collection accepts only String and not Integer objects


0 commentaires

2
votes
List<Animal> animals = new ArrayList<Animal>();
// add some animals to the list.
// now it only had animals not fruits, so you can
Animal animal = animals.get(0);   // no casting necessary

2 commentaires

Toutes nos félicitations! Le Seulement réponse dont les exemples de code traitent de la question posée et plus


@Bohemian est-ce une exigence?