Articles of generics

Comment créer une classe Java qui implémente une interface avec deux types génériques?

J’ai une interface générique public interface Consumer { public void consume(E e); } J’ai une classe qui utilise deux types d’objects, donc j’aimerais faire quelque chose comme: public class TwoTypesConsumer implements Consumer, Consumer { public void consume(Tomato t) { ….. } public void consume(Apple a) { …… } } Apparemment je ne peux pas faire […]

Sélectionnez un dictionnaire avec LINQ

J’ai utilisé le mot-clé “select” et la méthode d’extension pour renvoyer un IEnumerable avec LINQ, mais j’ai besoin de retourner un Dictionary générique et je n’arrive pas à le comprendre. L’exemple que j’ai appris à partir de quelque chose utilisé sous une forme similaire à la suivante: IEnumerable coll = from x in y select […]

Equivalent Java Map en C #

J’essaie de tenir une liste d’éléments dans une collection avec une clé de mon choix. En Java, je voudrais simplement utiliser Map comme suit: class Test { Map entities; public Ssortingng getEntity(Integer code) { return this.entities.get(code); } } Y a-t-il une manière équivalente de le faire en C #? System.Collections.Generic.Hashset n’utilise pas le hachage et […]

Qu’est-ce qui amène javac à lancer l’avertissement «utilise des opérations non vérifiées ou non sécurisées»?

Par exemple: javac Foo.java Note: Foo.java uses unchecked or unsafe operations. Note: Recomstack with -Xlint:unchecked for details.

Effacement des types de génériques Java: quand et que se passe-t-il?

J’ai lu sur le type d’effacement de Java sur le site Web d’Oracle . Quand l’effacement de type se produit-il? Au moment de la compilation ou de l’exécution? Quand la classe est chargée? Quand la classe est instanciée? Beaucoup de sites (y compris le tutoriel officiel mentionné ci-dessus) disent que l’effacement de type se produit […]

Quelle est la raison pour laquelle je ne peux pas créer de types de tableaux génériques en Java?

Quelle est la raison pour laquelle Java ne nous permet pas de faire private T[] elements = new T[initialCapacity]; Je pourrais comprendre que .NET ne nous permettait pas de faire cela, car dans .NET vous avez des types de valeurs qui peuvent avoir différentes tailles à l’exécution, mais en Java, toutes les sortes de T […]

Générique joker Java avec plusieurs classes

Je veux avoir un object Class, mais je veux forcer la classe qu’il représente pour étendre la classe A et implémenter l’interface B. Je peux faire: Class Ou: Class mais je ne peux pas faire les deux. Y a-t-il un moyen de faire cela?

Passer des arguments à C # générique new () de type template

J’essaie de créer un nouvel object de type T via son constructeur lors de l’ajout à la liste. Je reçois une erreur de compilation: Le message d’erreur est le suivant: ‘T’: impossible de fournir des arguments lors de la création d’une instance d’une variable Mais mes classes ont un argument constructeur! Comment puis-je faire ce […]

Quelles sont les raisons pour lesquelles Map.get (clé d’object) n’est pas (totalement) générique

Quelles sont les raisons de la décision de ne pas avoir une méthode get générique dans l’interface de java.util.Map . Pour clarifier la question, la signature de la méthode est V get(Object key) au lieu de V get(K key) et je me demande pourquoi (même chose pour remove, containsKey, containsValue ).

Quel est l’intérêt de l’opérateur de diamant dans Java 7?

L’opérateur de diamant dans Java 7 permet un code comme celui-ci: List list = new LinkedList(); Cependant, en Java 5/6, je peux simplement écrire: List list = new LinkedList(); Ma compréhension de l’effacement de type est que ce sont exactement les mêmes. (De toute façon, le générique est supprimé à l’exécution). Pourquoi s’embêter avec le […]