Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Dies ist ein kleiner Codeausschnitt aus einigen Beispielen, die dem Stanford Parser beiliegen. Ich habe in Java seit ungefähr 4 Jahren entwickelt, aber nie ein sehr starkes Verständnis dafür gehabt, was dieser Codestil anzeigen soll. List<? extends HasWord> wordList = toke.tokenize(); Ich mache mir keine Sorgen um die Details des …
Ich beschäftige mich tiefer mit Generika und habe jetzt eine Situation, in der ich Hilfe brauche. Ich erhalte einen Kompilierungsfehler für die unten stehende Klasse 'Abgeleitet', wie im Betreff angegeben. Ich sehe viele ähnliche Beiträge, aber ich sehe die Beziehung nicht. Kann mir jemand sagen, wie ich das lösen kann? …
Anhand des folgenden Beispiels (Verwenden von JUnit mit Hamcrest-Matchern): Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected)); Dies wird nicht mit der assertThatSignatur der JUnit- Methode kompiliert : public static <T> void assertThat(T actual, Matcher<T> matcher) Die Compiler-Fehlermeldung lautet: Error:Error:line (102)cannot find symbol method …
Geschlossen . Diese Frage muss fokussierter sein . Derzeit werden keine Antworten akzeptiert. Geschlossen vor 6 Jahren . Gesperrt . Diese Frage und ihre Antworten sind gesperrt, da die Frage nicht zum Thema gehört, aber historische Bedeutung hat. Derzeit werden keine neuen Antworten oder Interaktionen akzeptiert. Ich benutze meistens Java …
Beim Schreiben von XML-Dokumentation können Sie verwenden <see cref="something">something</see>, was natürlich funktioniert. Aber wie referenzieren Sie eine Klasse oder eine Methode mit generischen Typen? public class FancyClass<T> { public string FancyMethod<K>(T value) { return "something fancy"; } } Wenn ich irgendwo eine XML-Dokumentation schreiben würde, wie würde ich auf die …
In Java hätte ich gerne etwas wie: class Clazz<T> { static void doIt(T object) { // ... } } Aber ich verstehe Es kann kein statischer Verweis auf den nicht statischen Typ T erstellt werden Ich verstehe Generika nicht über die grundlegenden Verwendungszwecke hinaus und kann daher nicht viel Sinn …
Ich versuche, eine generische Erweiterung zu erstellen, die 'TryParse' verwendet, um zu überprüfen, ob eine Zeichenfolge ein bestimmter Typ ist: public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); } Dies wird nicht kompiliert, da das Symbol 'TryParse' nicht aufgelöst werden kann. Soweit ich weiß, ist …
Was sind die Unterschiede zwischen List, List<?>, List<T>, List<E>, und List<Object>? 1. Liste List: ist ein Rohtyp, daher nicht typesafe. Es wird nur dann ein Laufzeitfehler generiert, wenn das Casting schlecht ist. Wir möchten einen Fehler bei der Kompilierung, wenn die Besetzung schlecht ist. Nicht zu empfehlen. 2. Liste <?> …
Normalerweise habe ich gesehen, dass Leute das Klassenliteral wie folgt verwenden: Class<Foo> cls = Foo.class; Aber was ist, wenn der Typ generisch ist, zB List? Dies funktioniert gut, hat aber eine Warnung, da List parametrisiert werden sollte: Class<List> cls = List.class Warum also nicht ein hinzufügen <?>? Nun, dies verursacht …
Angenommen, Sie benötigen eine Liste / ein Array von Ganzzahlen, die Sie häufig iterieren müssen, und ich meine extrem oft. Die Gründe können variieren, aber sagen wir, es befindet sich im Herzen der innersten Schleife einer Verarbeitung mit hohem Volumen. Im Allgemeinen würde man sich aufgrund ihrer flexiblen Größe für …
Was ist der Unterschied zwischen <out T>und <T>? Beispielsweise: public interface IExample<out T> { ... } vs. public interface IExample<T> { ... }
Derzeit verwende ich: DataTable dt = CreateDataTableInSomeWay(); List<DataRow> list = new List<DataRow>(); foreach (DataRow dr in dt.Rows) { list.Add(dr); } Gibt es einen besseren / magischen Weg?
Der Titel ist irgendwie dunkel. Ich möchte wissen, ob dies möglich ist: string typeName = <read type name from somwhere>; Type myType = Type.GetType(typeName); MyGenericClass<myType> myGenericClass = new MyGenericClass<myType>(); Offensichtlich wird MyGenericClass wie folgt beschrieben: public class MyGenericClass<T> Im Moment beschwert sich der Compiler, dass 'Der Typ oder Namespace' myType …
Das Folgende ist ein Ausschnitt darüber, wie eine generische Java-Klasse erstellt wird, um ein einzelnes Element an ein Array anzuhängen. Wie kann ich appendToArray zu einer statischen Methode machen? Das Hinzufügen von Statik zur Methodensignatur führt zu Kompilierungsfehlern. public class ArrayUtils<E> { public E[] appendToArray(E[] array, E item) { E[] …
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.