Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Gibt es einen Unterschied zwischen List<Map<String, String>> und List<? extends Map<String, String>> ? Wenn es keinen Unterschied gibt, welchen Nutzen hat die Verwendung ? extends?
Ich habe einige JMockit-Beispiele gelesen und diesen Code gefunden: final List<OrderItem> actualItems = new ArrayList<~>(); Was bedeutet die Tilde im generischen Bezeichner? Ich weiß, dass es der unäre bitweise NICHT-Operator ist, aber ich sehe hier keinen Operanden. Außerdem habe ich versucht, es zu kompilieren und habe einen Fehler erhalten. Vermisse …
Ich habe mich gefragt, was der Unterschied zwischen den folgenden beiden Methodendeklarationen ist: public Object doSomething(Object obj) {....} public <T> T doSomething(T t) {....} Gibt es etwas, das du mit dem einen machen kannst / würdest, aber nicht mit dem anderen? Ich konnte diese Frage an keiner anderen Stelle auf …
Haftungsausschluss: Ich habe jetzt nur einen Tag mit Go gespielt, daher besteht eine gute Chance, dass ich viel verpasst habe. Weiß jemand, warum es in Go keine echte Unterstützung für Generika / Vorlagen / whatsInAName gibt? Es gibt also ein generisches mapProgramm, das jedoch vom Compiler bereitgestellt wird, während ein …
Warum wird dieser Swift-Code nicht kompiliert? protocol P { } struct S: P { } let arr:[P] = [ S() ] extension Array where Element : P { func test<T>() -> [T] { return [] } } let result : [S] = arr.test() Der Compiler sagt: "Typ Pentspricht nicht dem …
In einigen von mir geschriebenen Schnittstellen möchte ich generische Typparameter mit mehr als einem Zeichen benennen, um den Code besser lesbar zu machen. Etwas wie.... Map<Key,Value> An Stelle von... Map<K,V> Aber wenn es um Methoden geht, sehen die Typparameter wie Java-Klassen aus, was ebenfalls verwirrend ist. public void put(Key key, …
Ich weiß, wie man die nicht generische IEnumerable wie folgt implementiert: using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = …
Ich versuche, ein Wörterbuch (eigentlich ein HashSet ) zu erstellen, das auf einem benutzerdefinierten Protokoll in Swift verschlüsselt ist , aber es gibt mir den Fehler im Titel: Das Protokoll 'myProtocol' kann nur als generische Einschränkung verwendet werden, da es Self- oder zugehörige Typanforderungen hat und ich kann weder Kopf …
Ich lese über generische Methoden von OracleDocGenericMethod . Ich bin ziemlich verwirrt über den Vergleich, wenn es darum geht, wann Platzhalter und wann generische Methoden verwendet werden sollen. Zitieren aus dem Dokument. interface Collection<E> { public boolean containsAll(Collection<?> c); public boolean addAll(Collection<? extends E> c); } Wir hätten hier stattdessen …
Wenn ich Objekte als Schlüssel für a verwenden möchte Dictionary, welche Methoden muss ich überschreiben, damit sie auf bestimmte Weise verglichen werden? Angenommen, ich habe eine Klasse mit Eigenschaften: class Foo { public string Name { get; set; } public int FooID { get; set; } // elided } Und …
Wenn ich versuche, floatals Vorlagenparameter zu verwenden, schreit der Compiler nach diesem Code, während er inteinwandfrei funktioniert. Liegt es daran, dass ich nicht floatals Vorlagenparameter verwenden kann? #include<iostream> using namespace std; template <class T, T defaultValue> class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T …
Ich bin verwirrt darüber, welchen Auflistungstyp ich von meinen öffentlichen API-Methoden und -Eigenschaften zurückgeben soll. Die Sammlungen , die ich im Sinn haben sind IList, ICollectionund Collection. Wird die Rückgabe eines dieser Typen immer den anderen vorgezogen oder hängt dies von der jeweiligen Situation ab?
Dies ist eine Syntaxfrage. Ich habe eine generische Klasse, die von einer generischen Basisklasse erbt und eine Einschränkung auf einen der Typparameter anwendet. Ich möchte auch, dass die abgeleitete Klasse eine Schnittstelle implementiert. Für mein Leben kann ich anscheinend nicht die richtige Syntax herausfinden. Das habe ich: DerivedFoo<T1,T2> : ParentFoo<T1, …
Aufgrund der Verwendung von Generics in Java musste ich schließlich eine Funktion mit Voiddem Rückgabetyp implementieren : public Void doSomething() { //... } und der Compiler verlangt, dass ich etwas zurückgebe . Im Moment kehre ich gerade zurück null, aber ich frage mich, ob das eine gute Codierungspraxis ist ... …
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.