Questions marquées «generics»

Les génériques sont une forme de polymorphisme paramétrique trouvée dans une gamme de langages, y compris les langages .NET, Java, Swift et Rust.


14
En C #, pourquoi un objet List <string> ne peut-il pas être stocké dans une variable List <object>
Il semble qu'un objet List ne peut pas être stocké dans une variable List en C #, et ne peut même pas être explicitement converti de cette façon. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; résultats dans Impossible de convertir implicitement le type System.Collections.Generic.List&lt;string&gt;enSystem.Collections.Generic.List&lt;object&gt; Puis... List&lt;string&gt; sl …

4
Pourquoi le type de retour lambda n'est-il pas vérifié au moment de la compilation?
La référence de méthode utilisée a un type de retour Integer. Mais un incompatible Stringest autorisé dans l'exemple suivant. Comment corriger la withdéclaration de méthode pour sécuriser le type de référence de méthode sans transtyper manuellement? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { final Class&lt;T&gt; clazz; …

4
Quelle est la difference entre <? étend Base> et <T étend Base>?
Dans cet exemple: import java.util.*; public class Example { static void doesntCompile(Map&lt;Integer, List&lt;? extends Number&gt;&gt; map) {} static &lt;T extends Number&gt; void compiles(Map&lt;Integer, List&lt;T&gt;&gt; map) {} static void function(List&lt;? extends Number&gt; outer) { doesntCompile(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); compiles(new HashMap&lt;Integer, List&lt;Integer&gt;&gt;()); } } doesntCompile() ne parvient pas à compiler avec: Example.java:9: error: …



3
Sélection de signature de méthode pour l'expression lambda avec plusieurs types de cibles correspondants
Je répondais à une question et suis tombé sur un scénario que je ne peux pas expliquer. Considérez ce code: interface ConsumerOne&lt;T&gt; { void accept(T a); } interface CustomIterable&lt;T&gt; extends Iterable&lt;T&gt; { void forEach(ConsumerOne&lt;? super T&gt; c); //overload } class A { private static CustomIterable&lt;A&gt; iterable; private static List&lt;A&gt; aList; …
11 java  generics  lambda  javac  ecj 

1
Pourquoi le compilateur choisit-il cette méthode générique avec un paramètre de type de classe lorsqu'il est appelé avec un type d'interface sans rapport?
Considérez les deux classes et l'interface suivantes: public class Class1 {} public class Class2 {} public interface Interface1 {} Pourquoi le deuxième appel à mandatoryappeler la méthode surchargée avec Class2, si getInterface1et Interface1n'a aucune relation avec Class2? public class Test { public static void main(String[] args) { Class1 class1 = …

1
Référence de méthode et génériques en Java-8
Je suis confronté à un problème de référence de méthode combinée à des types génériques. Nous avons du code où nous devons appeler une méthode surchargée, mais il échoue avec une erreur: Impossible de résoudre la valeur m1 () J'ai simplifié mon problème pour indiquer clairement où se situe le …
11 java  generics  lambda  java-8 

4
Problème avec les propriétés génériques lors du mappage de type
J'ai une bibliothèque qui exporte un type d'utilitaire similaire au suivant: type Action&lt;Model extends object&gt; = (data: State&lt;Model&gt;) =&gt; State&lt;Model&gt;; Ce type d'utilitaire vous permet de déclarer une fonction qui fonctionnera comme une "action". Il reçoit un argument générique étant Modell'action contre laquelle l'action va fonctionner. L' dataargument de "l'action" …

4
Sélection de la méthode générique C #
J'essaie d'écrire des algorithmes génériques en C # qui peuvent fonctionner avec des entités géométriques de différentes dimensions. Dans l'exemple artificiel suivant, j'ai Point2et Point3, tous deux implémentant une IPointinterface simple . Maintenant, j'ai une fonction GenericAlgorithmqui appelle une fonction GetDim. Il existe plusieurs définitions de cette fonction en fonction …
9 c#  generics 

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.