J'ai une liste qui est déclarée comme ceci: List<? extends Number> foo3 = new ArrayList<Integer>(); J'ai essayé d'ajouter 3 à foo3. Cependant, je reçois un message d'erreur comme celui-ci: The method add(capture#1-of ? extends Number) in the type List<capture#1-of ? extends Number> is not applicable for the arguments (ExtendsNumber)
Quelqu'un pourrait-il expliquer pourquoi cela fonctionne en C # .NET 2.0: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... mais ce n'est pas le cas: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); Cette dernière forme me donne une erreur de compilation "Le …
Java a des génériques et C ++ fournit un modèle de programmation très solide avec templates. Alors, quelle est la différence entre les génériques C ++ et Java?
Il s'agit d'une version simplifiée du code en question, une classe générique utilise une autre classe avec des paramètres de type générique et doit passer l'un des types génériques à une méthode avec des paramètres varargs: class Assembler<X, Y> { void assemble(X container, Y... args) { ... } } class …
Ce n'est probablement pas possible, mais j'ai cette classe: public class Metadata<DataType> where DataType : struct { private DataType mDataType; } Il y a plus à cela, mais gardons les choses simples. Le type générique (DataType) est limité aux types valeur par l'instruction where. Ce que je veux faire, c'est …
Je pensais comprendre assez bien les génériques Java, mais je suis ensuite tombé sur ce qui suit dans java.lang.Enum: class Enum<E extends Enum<E>> Quelqu'un pourrait-il expliquer comment interpréter ce paramètre de type? Des points bonus pour fournir d'autres exemples d'utilisation d'un paramètre de type similaire.
J'essaye de tenir une liste d'articles dans une collection avec une clé de mon choix. En Java, j'utiliserais simplement Map comme suit: class Test { Map<Integer,String> entities; public String getEntity(Integer code) { return this.entities.get(code); } } Existe-t-il une manière équivalente de faire cela en C #? System.Collections.Generic.Hashsetn'utilise pas de hachage …
Les énumérations Java sont excellentes. Les génériques aussi. Bien sûr, nous connaissons tous les limites de ce dernier en raison de l'effacement de type. Mais il y a une chose que je ne comprends pas, pourquoi ne puis-je pas créer une énumération comme celle-ci: public enum MyEnum<T> { LITERAL1<String>, LITERAL2<Integer>, …
Suite à cette question , quelqu'un peut-il expliquer ce qui suit dans Scala: class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } Je comprends la distinction entre +Tet Tdans la déclaration de type (elle compile si j'utilise T). Mais alors comment écrire …
Quelle est la différence entre <? super E>et <? extends E>? Par exemple, lorsque vous regardez la classe, java.util.concurrent.LinkedBlockingQueueil y a la signature suivante pour le constructeur: public LinkedBlockingQueue(Collection<? extends E> c) et pour un pour la méthode: public int drainTo(Collection<? super E> c)
J'ai une chaîne json, que je devrais désérialiser dans la classe suivante class Data <T> { int found; Class<T> hits } Comment fait-on ça? C'est la manière habituelle mapper.readValue(jsonString, Data.class); Mais comment mentionner ce que signifie T?
J'ai une fonction générique qui appelle un service Web et sérialise la réponse JSON en un objet. class func invokeService<T>(service: String, withParams params: Dictionary<String, String>, returningClass: AnyClass, completionHandler handler: ((T) -> ())) { /* Construct the URL, call the service and parse the response */ } Ce que j'essaie d'accomplir, …
Selon la spécification du langage Java , 3e édition: Il s'agit d'une erreur de compilation si une classe générique est une sous-classe directe ou indirecte de Throwable. Je souhaite comprendre pourquoi cette décision a été prise. Quel est le problème avec les exceptions génériques? (Autant que je sache, les génériques …
C'est probablement une question novice, mais Google n'a étonnamment pas fourni de réponse. J'ai cette méthode plutôt artificielle T HowToCast<T>(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; } Venant d'un fond C ++, je m'attendais à ce que …
J'essaye de créer un nouvel objet d'un paramètre de type dans ma classe générique. Dans ma classe View, j'ai 2 listes d'objets de type générique passés comme paramètres de type, mais quand j'essaye de faire new TGridView(), TypeScript dit: Impossible de trouver le symbole «TGridView Voici le code: module AppFW …
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.