Perguntas com a marcação «generics»

Os genéricos são uma forma de polimorfismo paramétrico encontrado em uma variedade de linguagens, incluindo linguagens .NET, Java, Swift e Rust.



3
Uma característica peculiar da inferência de tipo de exceção em Java 8
Enquanto escrevia o código para outra resposta neste site, me deparei com esta peculiaridade: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static <T extends Throwable> void sneakyThrow(Throwable t) throws T { throw (T) t; } static …

14
Em C #, por que um objeto List <string> não pode ser armazenado em uma variável List <object>
Parece que um objeto List não pode ser armazenado em uma variável List em C # e nem pode ser convertido explicitamente dessa forma. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; resulta em não é possível converter implicitamente o tipo System.Collections.Generic.List&lt;string&gt;paraSystem.Collections.Generic.List&lt;object&gt; E depois... List&lt;string&gt; sl = new …


7
O .NET tem um EventArgs <T> integrado?
Estou me preparando para criar uma classe EventArgs genérica para argumentos de evento que carregam um único argumento: public class EventArg&lt;T&gt; : EventArgs { // Property variable private readonly T p_EventData; // Constructor public EventArg(T data) { p_EventData = data; } // Property for EventArgs argument public T Data { …
84 c#  generics  eventargs 

4
Por que o tipo de retorno lambda não é verificado no tempo de compilação?
A referência do método usado possui tipo de retorno Integer. Mas um incompatível Stringé permitido no exemplo a seguir. Como corrigir a withdeclaração do método para obter o tipo de referência do método seguro sem transmitir manualmente? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { final Class&lt;T&gt; …

4
Qual é a diferença entre <? estende a Base> e <T estende a Base>?
Neste exemplo: 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() falha ao compilar com: Example.java:9: error: incompatible types: HashMap&lt;Integer,List&lt;Integer&gt;&gt; …



3
Seleção de assinatura de método para expressão lambda com vários tipos de destino correspondentes
Eu estava respondendo uma pergunta e me deparei com um cenário que não consigo explicar. Considere este código: 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; public static …
11 java  generics  lambda  javac  ecj 

1
Por que o compilador escolhe esse método genérico com um parâmetro de tipo de classe quando chamado com um tipo de interface não relacionado?
Considere as duas classes e a interface a seguir: public class Class1 {} public class Class2 {} public interface Interface1 {} Por que a segunda chamada para mandatoryinvocar o método sobrecarregado com Class2, se getInterface1e Interface1não tem relacionamento Class2? public class Test { public static void main(String[] args) { Class1 …

1
Referência de método e genéricos em Java-8
Estou enfrentando problemas com a referência de método combinada com tipos genéricos. Temos um código no qual precisamos chamar um método sobrecarregado, mas está falhando com erro: Não é possível resolver o valor m1 () Simplifiquei meu problema para deixar claro onde está o problema. O código a seguir falha: …
11 java  generics  lambda  java-8 

4
Problema com propriedades genéricas ao mapear tipos
Eu tenho uma biblioteca que exporta um tipo de utilitário semelhante ao seguinte: type Action&lt;Model extends object&gt; = (data: State&lt;Model&gt;) =&gt; State&lt;Model&gt;; Este tipo de utilitário permite declarar uma função que será executada como uma "ação". Ele recebe um argumento genérico contra o Modelqual a ação operará. O dataargumento da …

4
Seleção de método genérico em C #
Estou tentando escrever algoritmos genéricos em c # que podem funcionar com entidades geométricas de diferentes dimensões. No exemplo a seguir, eu tenho Point2e Point3, ambos implementando uma IPointinterface simples . Agora eu tenho uma função GenericAlgorithmque chama uma função GetDim. Existem várias definições dessa função com base no tipo. …
9 c#  generics 

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.