Ho un elenco che è dichiarato così: List<? extends Number> foo3 = new ArrayList<Integer>(); Ho provato ad aggiungere 3 a foo3. Tuttavia ricevo un messaggio di errore come questo: The method add(capture#1-of ? extends Number) in the type List<capture#1-of ? extends Number> is not applicable for the arguments (ExtendsNumber)
Qualcuno potrebbe spiegare perché questo funziona in C # .NET 2.0: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... ma questo non: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); Quest'ultimo modulo mi dà un errore di compilazione "Il tipo di espressione condizionale …
Questa è una versione semplificata del codice in questione, una classe generica utilizza un'altra classe con parametri di tipo generico e deve passare uno dei tipi generici a un metodo con parametri varargs: class Assembler<X, Y> { void assemble(X container, Y... args) { ... } } class Component<T> { void …
Questo probabilmente non è possibile, ma ho questa classe: public class Metadata<DataType> where DataType : struct { private DataType mDataType; } C'è di più, ma manteniamolo semplice. Il tipo generico (DataType) è limitato ai tipi di valore dall'istruzione where. Quello che voglio fare è avere un elenco di questi oggetti …
Pensavo di aver capito abbastanza bene i generici Java, ma poi mi sono imbattuto in java.lang.Enum: class Enum<E extends Enum<E>> Qualcuno potrebbe spiegare come interpretare questo parametro di tipo? Punti bonus per fornire altri esempi di dove potrebbe essere utilizzato un parametro di tipo simile.
Sto cercando di tenere un elenco di elementi in una raccolta con una chiave di mia scelta. In Java, userò semplicemente Map come segue: class Test { Map<Integer,String> entities; public String getEntity(Integer code) { return this.entities.get(code); } } Esiste un modo equivalente per farlo in C #? System.Collections.Generic.Hashsetnon usa l'hash …
Gli enumerati Java sono fantastici. Lo sono anche i generici. Naturalmente conosciamo tutti i limiti di quest'ultimo a causa della cancellazione del tipo. Ma c'è una cosa che non capisco, perché non posso creare un enum come questo: public enum MyEnum<T> { LITERAL1<String>, LITERAL2<Integer>, LITERAL3<Object>; } Questo parametro di tipo …
In seguito a questa domanda , qualcuno può spiegare quanto segue in Scala: class Slot[+T] (var some: T) { // DOES NOT COMPILE // "COVARIANT parameter in CONTRAVARIANT position" } Comprendo la distinzione tra +Te Tnella dichiarazione del tipo (compila se uso T). Ma allora come si può effettivamente scrivere …
Qual è la differenza tra <? super E>e <? extends E>? Ad esempio, quando dai un'occhiata alla classe java.util.concurrent.LinkedBlockingQueuec'è la seguente firma per il costruttore: public LinkedBlockingQueue(Collection<? extends E> c) e per uno per il metodo: public int drainTo(Collection<? super E> c)
Ho una stringa JSON, che dovrei deserializzare alla seguente classe class Data <T> { int found; Class<T> hits } Come lo faccio? Questo è il solito modo mapper.readValue(jsonString, Data.class); Ma come posso dire cosa rappresenta T?
Ho una funzione generica che chiama un servizio Web e serializza la risposta JSON su un oggetto. 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 */ } Quello che sto cercando …
Secondo la Java Language Sepecification , 3a edizione: È un errore in fase di compilazione se una classe generica è una sottoclasse diretta o indiretta di Throwable. Vorrei capire perché questa decisione è stata presa. Cosa c'è che non va nelle eccezioni generiche? (Per quanto ne so, i generici sono …
Questa è probabilmente una domanda per principianti, ma sorprendentemente Google non ha fornito una risposta. Ho questo metodo piuttosto artificiale T HowToCast<T>(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; } Proveniente da un background C ++, mi aspettavo …
Perché Collection.remove (Object o) non è generico? Sembra che Collection<E>avrebbe potutoboolean remove(E o); Quindi, quando si tenta di rimuovere accidentalmente (ad esempio) Set<String>invece di ogni singola stringa da a Collection<String>, si tratterebbe di un errore di compilazione anziché di un problema di debug in un secondo momento.
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.