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.



4
Was bedeutet eine Tilde in spitzen Klammern beim Erstellen einer generischen Java-Klasse?
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 …

8
Java-Generika T vs Object
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 …
127 java  generics 

5
Warum keine Generika in Go?
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 …

3
Protokoll passt sich nicht an?
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 …


6
Wie implementiere ich IEnumerable <T>?
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 = …
124 c#  .net  generics 

2
Was bedeutet "Protokoll ... kann nur als generische Einschränkung verwendet werden, weil es Selbst- oder zugehörige Typanforderungen hat"?
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 …

8
Wann sollten generische Methoden und wann Platzhalter verwendet werden?
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&lt;E&gt; { public boolean containsAll(Collection&lt;?&gt; c); public boolean addAll(Collection&lt;? extends E&gt; c); } Wir hätten hier stattdessen …
122 java  generics  wildcard 


11
Warum kann ich den Float-Wert nicht als Vorlagenparameter verwenden?
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&lt;iostream&gt; using namespace std; template &lt;class T, T defaultValue&gt; class GenericClass { private: T value; public: GenericClass() { value = defaultValue; } T …

6
Rückgabe von 'IList' gegen 'ICollection' gegen 'Collection'
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?
119 c#  .net  generics  collections 

4
Von einer generischen Basisklasse erben, eine Einschränkung anwenden und eine Schnittstelle in C # implementieren
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&lt;T1,T2&gt; : ParentFoo&lt;T1, …


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.