Als «generics» getaggte Fragen

Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.

5
Nullable Typ Problem mit ?: Bedingter Operator
Könnte jemand erklären, warum dies in C # .NET 2.0 funktioniert: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ... aber das geht nicht: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); Das letztere Formular gibt mir einen Kompilierungsfehler. "Der Typ des bedingten Ausdrucks …


8
Ist es möglich, die Compiler-Warnung "Ein generisches Array von T wird für einen varargs-Parameter erstellt" zu lösen?
Dies ist eine vereinfachte Version des fraglichen Codes. Eine generische Klasse verwendet eine andere Klasse mit generischen Typparametern und muss einen der generischen Typen an eine Methode mit varargs-Parametern übergeben: class Assembler<X, Y> { void assemble(X container, Y... args) { ... } } class Component<T> { void useAssembler(T something) { …
153 java  generics 

3
C # - Mehrere generische Typen in einer Liste
Dies ist wahrscheinlich nicht möglich, aber ich habe diese Klasse: public class Metadata<DataType> where DataType : struct { private DataType mDataType; } Es steckt noch mehr dahinter, aber lassen Sie es uns einfach halten. Der generische Typ (DataType) ist durch die where-Anweisung auf Werttypen beschränkt. Ich möchte eine Liste dieser …
152 c#  generics 

6
Wie kann ich zur Liste <hinzufügen? erweitert Anzahl> Datenstrukturen?
Ich habe eine Liste, die wie folgt deklariert ist: List&lt;? extends Number&gt; foo3 = new ArrayList&lt;Integer&gt;(); Ich habe versucht, foo3 3 hinzuzufügen. Ich erhalte jedoch eine Fehlermeldung wie folgt: The method add(capture#1-of ? extends Number) in the type List&lt;capture#1-of ? extends Number&gt; is not applicable for the arguments (ExtendsNumber)
152 java  generics 

7
Java Enum Definition
Ich dachte, ich verstehe Java-Generika ziemlich gut, aber dann bin ich in java.lang.Enum auf Folgendes gestoßen: class Enum&lt;E extends Enum&lt;E&gt;&gt; Könnte jemand erklären, wie dieser Typparameter zu interpretieren ist? Bonuspunkte für die Bereitstellung anderer Beispiele dafür, wo ein ähnlicher Typparameter verwendet werden könnte.
151 java  generics  enums  crtp 

3
Java Map-Äquivalent in C #
Ich versuche, eine Liste von Elementen in einer Sammlung mit einem Schlüssel meiner Wahl zu führen. In Java würde ich Map einfach wie folgt verwenden: class Test { Map&lt;Integer,String&gt; entities; public String getEntity(Integer code) { return this.entities.get(code); } } Gibt es eine äquivalente Möglichkeit, dies in C # zu tun? …
150 c#  java  generics  collections 

7
Warum sollten Java-Enum-Literale keine generischen Typparameter haben können?
Java-Enums sind großartig. Generika auch. Natürlich kennen wir alle die Einschränkungen des letzteren aufgrund der Typlöschung. Aber eines verstehe ich nicht: Warum kann ich so eine Aufzählung nicht erstellen: public enum MyEnum&lt;T&gt; { LITERAL1&lt;String&gt;, LITERAL2&lt;Integer&gt;, LITERAL3&lt;Object&gt;; } Dieser generische Typparameter &lt;T&gt;könnte dann wiederum an verschiedenen Stellen nützlich sein. Stellen Sie …
148 java  generics  enums 


9
Was ist ein Unterschied zwischen <? Super E> und <? erweitert E>?
Was ist der Unterschied zwischen &lt;? super E&gt;und &lt;? extends E&gt;? Wenn Sie sich beispielsweise die Klasse ansehen, java.util.concurrent.LinkedBlockingQueuegibt es die folgende Signatur für den Konstruktor: public LinkedBlockingQueue(Collection&lt;? extends E&gt; c) und zum einen für die Methode: public int drainTo(Collection&lt;? super E&gt; c)
147 java  generics 

12
Jackson - Deserialisieren mit generischer Klasse
Ich habe eine JSON-Zeichenfolge, die ich in die folgende Klasse deSerialisieren sollte class Data &lt;T&gt; { int found; Class&lt;T&gt; hits } Wie mache ich es? Dies ist der übliche Weg mapper.readValue(jsonString, Data.class); Aber wie erwähne ich, wofür T steht?
147 java  json  generics  jackson 

5
So übergeben Sie einen Klassentyp als Funktionsparameter
Ich habe eine generische Funktion, die einen Webdienst aufruft und die JSON-Antwort zurück zu einem Objekt serialisiert. class func invokeService&lt;T&gt;(service: String, withParams params: Dictionary&lt;String, String&gt;, returningClass: AnyClass, completionHandler handler: ((T) -&gt; ())) { /* Construct the URL, call the service and parse the response */ } Was ich versuche zu …


6
Wert vom Typ 'T' kann nicht konvertiert werden
Dies ist wahrscheinlich eine Anfängerfrage, aber Google hat überraschenderweise keine Antwort geliefert. Ich habe diese eher künstliche Methode T HowToCast&lt;T&gt;(T t) { if (typeof(T) == typeof(string)) { T newT1 = "some text"; T newT2 = (string)t; } return t; } Ich komme aus einem C ++ - Hintergrund und habe …
146 c#  .net  generics  casting 

10
Warum entfernen Java Collections keine generischen Methoden?
Warum ist Collection.remove (Object o) nicht generisch? Scheint wie Collection&lt;E&gt;könnte habenboolean remove(E o); Wenn Sie dann versehentlich versuchen, (zum Beispiel) Set&lt;String&gt;anstelle jeder einzelnen Zeichenfolge aus a zu entfernen Collection&lt;String&gt;, handelt es sich um einen Fehler bei der Kompilierung anstelle eines späteren Debugging-Problems.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.