Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Wie kann ich das erreichen? public class GenericClass<T> { public Type getMyType() { //How do I return the type of T? } } Alles, was ich bisher versucht habe, gibt immer den Typ zurück Objectund nicht den spezifischen verwendeten Typ.
Geschlossen . Diese Frage basiert auf Meinungen . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage, damit sie mit Fakten und Zitaten beantwortet werden kann, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 7 Monaten . Kann mir jemand erklären, warum ich IList over …
Ich suche nach einem besseren Muster für die Arbeit mit einer Liste von Elementen, die jeweils verarbeitet werden müssen und dann je nach Ergebnis aus der Liste entfernt werden. Sie können nicht .Remove(element)innerhalb von verwenden foreach (var element in X)(weil dies zu einer Collection was modified; enumeration operation may not …
Der Diamantoperator in Java 7 erlaubt Code wie den folgenden: List<String> list = new LinkedList<>(); In Java 5/6 kann ich jedoch einfach schreiben: List<String> list = new LinkedList(); Mein Verständnis von Typlöschung ist, dass diese genau gleich sind. (Das Generikum wird sowieso zur Laufzeit entfernt). Warum sich überhaupt mit dem …
Ich verwende C # unter Framework 3.5. Ich suche schnell ein Generikum zu sortieren List<T>. PersonNehmen wir für dieses Beispiel an, ich habe eine Liste eines Typs mit der Eigenschaft Nachname. Wie würde ich diese Liste mit einem Lambda-Ausdruck sortieren? List<Person> people = PopulateList(); people.OrderBy(???? => ?????)
Ich möchte ein Listenobjekt über Google Gson übertragen, weiß jedoch nicht, wie generische Typen deserialisiert werden sollen. Was ich versucht , nachdem bei der Suche diese (BalusC Antwort): MyClass mc = new Gson().fromJson(result, new List<MyClass>(){}.getClass()); Aber dann erhalte ich in Eclipse die Fehlermeldung "Der Typ new List () {} muss …
Ich verstehe, dass dies bei Java 7 auftritt, wenn Varargs mit einem generischen Typ verwendet werden. Aber meine Frage ist .. Was genau bedeutet Eclipse, wenn es heißt "seine Verwendung könnte möglicherweise den Haufen verschmutzen"? Und Wie @SafeVarargsverhindert die neue Anmerkung dies?
In C # 3.0 können Sie eine anonyme Klasse mit der folgenden Syntax erstellen var o = new { Id = 1, Name = "Foo" }; Gibt es eine Möglichkeit, diese anonymen Klassen einer generischen Liste hinzuzufügen? Beispiel: var o = new { Id = 1, Name = "Foo" }; …
Ich versuche, beim Hinzufügen zur Liste ein neues Objekt vom Typ T über seinen Konstruktor zu erstellen. Ich erhalte einen Kompilierungsfehler: Die Fehlermeldung lautet: 'T': Beim Erstellen einer Instanz einer Variablen können keine Argumente angegeben werden Aber meine Klassen haben ein Konstruktorargument! Wie kann ich das zum Laufen bringen? public …
Was sind die Gründe für die Entscheidung, nicht eine völlig generische get - Methode in der Schnittstelle haben java.util.Map<K, V>. Zur Klärung der Frage lautet die Signatur der Methode V get(Object key) anstatt V get(K key) und ich frage mich warum (das gleiche für remove, containsKey, containsValue).
Ich möchte ein Class-Objekt haben, aber ich möchte jede Klasse, die es darstellt, zwingen, Klasse A zu erweitern und Schnittstelle B zu implementieren. Ich kann: Class<? extends ClassA> Oder: Class<? extends InterfaceB> aber ich kann nicht beides. Gibt es eine Möglichkeit, dies zu tun?
Warum ist es nicht legal, die folgenden zwei Methoden in derselben Klasse zu haben? class Test{ void add(Set<Integer> ii){} void add(Set<String> ss){} } Ich bekomme die compilation error Die Methode add (Set) hat dieselbe Löschaddition (Set) wie eine andere Methode im Typ Test. Während ich es umgehen kann, habe ich …
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.