Domande taggate «generics»

I generici sono una forma di polimorfismo parametrico che si trova in una vasta gamma di lingue, inclusi i linguaggi .NET, Java, Swift e Rust.

6
Creazione di un metodo generico in C #
Sto cercando di combinare una serie di metodi simili in un metodo generico. Ho diversi metodi che restituiscono il valore di una querystring, o null se quella querystring non esiste o non è nel formato corretto. Questo sarebbe abbastanza facile se tutti i tipi fossero nativamente nullable, ma devo usare …
86 c#  generics 

6
Trasmetti Int a Enum generico in C #
Simile a Cast int per enumerare in C # ma il mio enum è un parametro di tipo generico. Qual è il modo migliore per gestirlo? Esempio: private T ConvertEnum<T>(int i) where T : struct, IConvertible { return (T)i; } Genera un errore del compilatore Cannot convert type 'int' to …
86 c#  generics  casting  enums 

14
In C #, perché non è possibile archiviare un oggetto List <string> in una variabile List <object>
Sembra che un oggetto List non possa essere memorizzato in una variabile List in C # e non possa nemmeno essere espressamente cast in questo modo. List&lt;string&gt; sl = new List&lt;string&gt;(); List&lt;object&gt; ol; ol = sl; risulta in Impossibile convertire implicitamente il tipo System.Collections.Generic.List&lt;string&gt;inSystem.Collections.Generic.List&lt;object&gt; E poi... List&lt;string&gt; sl = new …


3
Una caratteristica peculiare dell'inferenza del tipo di eccezione in Java 8
Mentre scrivevo il codice per un'altra risposta su questo sito mi sono imbattuto in questa particolarità: static void testSneaky() { final Exception e = new Exception(); sneakyThrow(e); //no problems here nonSneakyThrow(e); //ERRROR: Unhandled exception: java.lang.Exception } @SuppressWarnings("unchecked") static &lt;T extends Throwable&gt; void sneakyThrow(Throwable t) throws T { throw (T) t; …

7
.NET dispone di un EventArgs <T> integrato?
Mi sto preparando a creare una classe EventArgs generica per argomenti evento che contengono un singolo argomento: 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 { get …
85 c#  generics  eventargs 



4
Perché il tipo restituito lambda non viene verificato al momento della compilazione?
Il riferimento al metodo utilizzato ha il tipo restituito Integer. Ma un incompatibile Stringè consentito nel seguente esempio. Come risolvere la withdichiarazione del metodo per rendere sicuro il tipo di riferimento del metodo senza eseguire il cast manualmente? import java.util.function.Function; public class MinimalExample { static public class Builder&lt;T&gt; { final …

4
Qual è la differenza tra <? estende Base> e <T estende Base>?
In questo esempio: 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() non riesce a compilare con: Example.java:9: error: incompatible …



3
Selezione della firma del metodo per l'espressione lambda con più tipi di destinazione corrispondenti
Stavo rispondendo a una domanda e mi sono imbattuto in uno scenario che non posso spiegare. Considera questo codice: 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 …
11 java  generics  lambda  javac  ecj 

1
Perché il compilatore sceglie questo metodo generico con un parametro di tipo classe quando viene invocato con un tipo di interfaccia non correlato?
Considera le seguenti due classi e interfacce: public class Class1 {} public class Class2 {} public interface Interface1 {} Perché la seconda chiamata per mandatoryinvocare il metodo sovraccaricato con Class2, se getInterface1e Interface1non ha alcuna relazione Class2? public class Test { public static void main(String[] args) { Class1 class1 = …

1
Riferimento al metodo e generici in Java-8
Sto affrontando il problema con il riferimento al metodo combinato con tipi generici. Abbiamo codice in cui è necessario chiamare un metodo sovraccarico, ma non riesce con errore: Impossibile risolvere il valore m1 () Ho semplificato il mio problema per chiarire dove si trova il problema. Il seguente codice ha …
11 java  generics  lambda  java-8 

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.