Articles of génériques

Comment vérifier si une valeur donnée est une liste générique?

public bool IsList(object value) { Type type = value.GetType(); // Check if type is a generic list of any type } Quelle est la meilleure façon de vérifier si l’object donné est une liste ou peut être converti en une liste?

Que sont les génériques réifiés? Comment résolvent-ils les problèmes de type Erasure et pourquoi ne peuvent-ils pas être ajoutés sans modifications majeures?

J’ai lu le blog de Neal Gafter sur le sujet et je ne suis toujours pas certain sur un certain nombre de points. Pourquoi n’est-il pas possible de créer des implémentations de l’API Collections qui conservent les informations de type étant donné l’état actuel de Java, de la JVM et de l’API de collections existantes? […]

Convertir la liste (de l’object) en liste (de chaîne)

Existe-t-il un moyen de convertir une List(of Object) en une List(of Ssortingng) dans c # ou vb.net sans itérer tous les éléments? (L’itération en coulisses est bien – je veux juste du code concis) Mise à jour: Le meilleur moyen est probablement de faire une nouvelle sélection myList.Select(function(i) i.ToSsortingng()).ToList(); ou myList.Select(i => i.ToSsortingng()).ToList();

Créer une liste de primitive int?

Est-il possible de créer une liste de primitives int ou de primitives dans java comme suit? List myList = new ArrayList(); Il semble que je puisse faire List myList = new ArrayList(); et ajoutez “int” dans cette liste. Mais alors cela voudrait dire que je peux append quelque chose à cette liste. Est-ce que ma […]

comment instanceof List ?

Comment puis-je faire fonctionner ce genre de choses? Je peux vérifier si (obj instanceof List) Mais pas si (obj instanceof List) . Y a-t-il un moyen de le faire?

Performance: type dérivé du générique

J’ai rencontré un problème de performance que je ne comprends pas bien. Je sais comment le réparer, mais je ne comprends pas pourquoi cela se produit. C’est juste pour s’amuser! Parlons du code. J’ai simplifié le code autant que possible pour reproduire le problème. Supposons que nous ayons une classe générique. Il a une liste […]

Pourquoi le compilateur C # autorise-t-il un transtypage explicite entre IEnumerable et TAlmostAnything?

Le code suivant vous donne une erreur de compilation, comme prévu: List aBunchOfBananas = new List(); Banana justOneBanana = (Banana)aBunchOfBananas; Cependant, lorsque vous utilisez IEnumerable , vous obtenez simplement une erreur d’exécution. IEnumerable aBunchOfBananas = new List(); Banana justOneBanana = (Banana)aBunchOfBananas; Pourquoi le compilateur C # le permet-il?

Est-ce que Java est valide?

Est-ce que Java est valide? import java.util.Arrays; import java.util.List; class TestWillThatComstack { public static Ssortingng f(List list) { System.out.println(“ssortingngs”); return null; } public static Integer f(List list) { System.out.println(“numbers”); return null; } public static void main(Ssortingng[] args) { f(Arrays.asList(“asdf”)); f(Arrays.asList(123)); } } Eclipse 3.5 dit oui Eclipse 3.6 dit non Intellij 9 dit oui Sun […]

Lists.newArrayList vs nouvelle ArrayList

Quelle est la meilleure construction pour créer une List de chaînes? Est-ce Lists.newArrayList() (à partir de goyave) ou une new ArrayList() ? est-ce juste une préférence personnelle? ou est-ce juste Tapez inférence de type générique? ou y a-t-il une valeur théorique ou pratique à utiliser Lists.newArrayList ()?

Impossible de spécialiser explicitement une fonction générique

J’ai un problème avec le code suivant: func generic1(name : Ssortingng){ } func generic2(name : Ssortingng){ generic1(name) } l’erreur generic1 (name) à l’erreur du compilateur “Impossible de spécialiser explicitement une fonction générique” Est-il possible d’éviter cette erreur? Je ne peux pas changer la signature de la fonction generic1, elle devrait donc être (Ssortingng) -> Void