Une " pollution de tas " comme dans les types non réifiables (Tutoriels Java ™> Apprentissage du langage Java> Génériques (mise à jour)) Pourquoi est-ce appelé ainsi?
J'ai vu à plusieurs reprises sur ce site des publications qui dénoncent l'implémentation des génériques par Java. Maintenant, je peux honnêtement dire que je n’ai eu aucun problème à les utiliser. Cependant, je n'ai pas tenté de créer moi-même une classe générique. Alors, quels sont vos problèmes avec le support …
Dernièrement, j'ai l'habitude de "masquer" les collections Java avec des noms de classes conviviaux. Quelques exemples simples: // Facade class that makes code more readable and understandable. public class WidgetCache extends Map<String, Widget> { } Ou: // If you saw a ArrayList<ArrayList<?>> being passed around in the code, would you …
En passant en revue du code, j'ai remarqué qu'il était possible de le changer pour qu'il utilise des génériques. Le code (obscurci) ressemble à: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Ce code pourrait être remplacé par des génériques, comme ceci: public void DoAllTheThings<T>(object[] …
Par exemple, j'ai un jeu qui a quelques outils pour augmenter la capacité du joueur: Tool.h class Tool{ public: std::string name; }; Et quelques outils: Épée.h class Sword : public Tool{ public: Sword(){ this->name="Sword"; } int attack; }; Bouclier.h class Shield : public Tool{ public: Shield(){ this->name="Shield"; } int defense; …
Voulez-vous améliorer ce post? Fournissez des réponses détaillées à cette question, y compris des citations et une explication de la raison pour laquelle votre réponse est correcte. Les réponses sans suffisamment de détails peuvent être modifiées ou supprimées. Il est communément admis que les génériques Java ont échoué de plusieurs …
Supposons que j'ai deux classes qui ressemblent à ceci (le premier bloc de code et le problème général sont liés à C #): class A { public int IntProperty { get; set; } } class B { public int IntProperty { get; set; } } Ces classes ne peuvent en …
Je semble avoir un malentendu sur la différence entre <Foo>et <? extends Foo>. D'après ma compréhension, si nous avions ArrayList<Foo> foos = new ArrayList<>(); Cela indique que des objets de type Foopeuvent être ajoutés à cette liste de tableaux. Comme les sous-classes de Foosont également de type Foo, elles peuvent …
Je ne me souviens pas quand j'ai écrit la classe générique la dernière fois. Chaque fois que je pense que j'en ai besoin après avoir réfléchi, je tire une conclusion que je n'ai pas. La deuxième réponse à cette question m'a fait demander des éclaircissements (puisque je ne peux pas …
AFAIK, mes extendsclasses et implementsinterfaces parentales . Mais je rencontre une situation où je ne peux pas l'utiliser implements SomeInterface. C'est la déclaration d'un type générique. Par exemple: public interface CallsForGrow {...} public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work! extends ArrayList<T> Ici, l'utilisation implementsest interdite syntaxiquement. J'ai …
Je reste dans un environnement où les gens croient: Les génériques Java sont la fonctionnalité exclusivement utilisée pour l'écriture de bibliothèque et non pour le véritable codage. C ++ est un langage de programmation OO; templateest une fonctionnalité optionnelle et évitable Cependant, ces personnes dépendent fortement des bibliothèques écrites en …
Dans les génériques C #, nous pouvons déclarer une contrainte pour qu'un paramètre de type Tait un constructeur par défaut, en disant where T : new(). Cependant, aucun autre type de contrainte comme celui-ci n'est valide - new(string)par exemple, etc. Du point de vue de la conception et / ou …
Supposons que j'ai cette hiérarchie de classe ... public abstract class Animal { public abstract void eat(); public abstract void talk(); } class Dog extends Animal { @Override public void eat() { } @Override public void talk() { } } class Cat extends Animal { @Override public void eat() { …
Je suis sûr que tout le monde connaît les méthodes génériques du formulaire: T DoSomething<T>(T item) Cette fonction est également appelée paramétriquement polymorphe (PP), en particulier PP de rang 1 . Disons que cette méthode peut être représentée à l'aide d'un objet fonction de la forme: <T> : T -> …
C'est la question du point de vue interne du compilateur. Je m'intéresse aux génériques, pas aux modèles (C ++), j'ai donc marqué la question avec C #. Pas Java, car AFAIK les génériques dans les deux langues diffèrent dans les implémentations. Quand je regarde les langages sans génériques, c'est assez …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.