Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Ich habe das Schlüsselwort "select" und die Erweiterungsmethode verwendet, um ein IEnumerable<T>mit LINQ zurückzugeben, aber ich muss ein generisches zurückgeben Dictionary<T1, T2>und kann es nicht herausfinden. Das Beispiel, aus dem ich dies gelernt habe, hat etwas in einer ähnlichen Form verwendet: IEnumerable<T> coll = from x in y select new …
Dies ist ein reales Beispiel aus einer Bibliotheks-API eines Drittanbieters, jedoch vereinfacht. Kompiliert mit Oracle JDK 8u72 Betrachten Sie diese beiden Methoden: <X extends CharSequence> X getCharSequence() { return (X) "hello"; } <X extends String> X getString() { return (X) "hello"; } Beide melden eine Warnung "ungeprüfte Besetzung" - ich …
Mockito bietet: when(mock.process(Matchers.any(List.class))); Wie vermeide ich eine Warnung, wenn stattdessen processeine genommen List<Bar>wird?
Ist es möglich, den Typ einer Schnittstelle mit Generika zu übergeben? Die Schnittstelle: public interface AsyncCallback<T> In meiner Testmethode: Mockito.any(AsyncCallback.class) Putting <ResponseX>hinter oder .classfunktioniert nicht.
Kann ich eine Methode mit einem out-Parameter als Func übergeben? public IList<Foo> FindForBar(string bar, out int count) { } // somewhere else public IList<T> Find(Func<string, int, List<T>> listFunction) { } Func benötigt einen Typ, damit out dort nicht kompiliert wird, und der Aufruf von listFunction erfordert ein int und erlaubt …
Es gibt anscheinend viele Möglichkeiten, eine Sammlung zu durchlaufen. Neugierig, ob es Unterschiede gibt oder warum Sie einen Weg über den anderen verwenden würden. Erster Typ: List<string> someList = <some way to init> foreach(string s in someList) { <process the string> } Andere Weise: List<string> someList = <some way to …
Ich bin neu in Java und sehr verwirrt. Ich habe einen großen Datensatz mit der Länge 4 int[]und möchte zählen, wie oft jede bestimmte Kombination von 4 Ganzzahlen auftritt. Dies ist dem Zählen von Worthäufigkeiten in einem Dokument sehr ähnlich. Ich möchte eine erstellen Map<int[], double>, die jedes int [] …
Gibt es eine Möglichkeit, diese Methode generisch zu gestalten, damit ich einen String, Bool, Int oder Double zurückgeben kann? Im Moment wird eine Zeichenfolge zurückgegeben, aber wenn "true" oder "false" als Konfigurationswert gefunden werden kann, möchte ich beispielsweise einen Bool zurückgeben. public static string ConfigSetting(string settingName) { return ConfigurationManager.AppSettings[settingName]; }
Ich habe eine generische Schnittstelle public interface Consumer<E> { public void consume(E e); } Ich habe eine Klasse, die zwei Arten von Objekten verwendet, also möchte ich etwas tun wie: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void consume(Tomato t) { ..... } public void consume(Apple a) { ...... …
Aus Effective Java von Joshua Bloch, Arrays unterscheiden sich vom generischen Typ in zwei wichtigen Punkten. Erste Arrays sind kovariant. Generika sind unveränderlich. Kovariante bedeutet einfach, wenn X der Subtyp von Y ist, dann ist X [] auch der Subtyp von Y []. Arrays sind kovariant, da der String der …
Gibt es eine Möglichkeit, die folgende Funktionsdeklaration zu erhalten? public bool Foo<T>() where T : interface; dh. Dabei ist T ein Schnittstellentyp (ähnlich where T : classund struct). Derzeit habe ich mich entschieden für: public bool Foo<T>() where T : IBase; Wo IBase als leere Schnittstelle definiert ist, die von …
Ich weiß, dass Java parametrischen Polymorphismus (Generics) mit Löschung implementiert. Ich verstehe, was Löschen ist. Ich weiß, dass C # parametrischen Polymorphismus mit Reifizierung implementiert. Ich weiß, das kann dich zum Schreiben bringen public void dosomething(List<String> input) {} public void dosomething(List<Int> input) {} oder dass Sie zur Laufzeit wissen können, …
Sie können sehen, was ich mit dem folgenden Code versuche (aber nicht schaffe): protected T GetObject() { return new T(); } Jede Hilfe wäre sehr dankbar. BEARBEITEN: Der Kontext war wie folgt. Ich habe mit einer benutzerdefinierten Controller-Klasse herumgespielt, von der alle Controller mit standardisierten Methoden abgeleitet werden können. Im …
Ich habe eine ArrayList<String>, von der ich eine Kopie zurückgeben möchte. ArrayListhat eine Klonmethode mit der folgenden Signatur: public Object clone() Wie kann ich das zurückgegebene Objekt nach dem Aufrufen dieser Methode zurücksetzen ArrayList<String>?
Ich habe also eine generische Liste und einen oldIndexund einen newIndexWert. Ich möchte den Gegenstand verschieben oldIndex, um newIndex... so einfach wie möglich. Irgendwelche Vorschläge? Hinweis Der Gegenstand sollte zwischen den Gegenständen am (newIndex - 1)und newIndex vor dem Entfernen liegen.
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.