Generika sind eine Form des parametrischen Polymorphismus, der in einer Reihe von Sprachen zu finden ist, darunter .NET-Sprachen, Java, Swift und Rust.
Betrachten Sie die folgenden zwei Klassen und Schnittstellen: public class Class1 {} public class Class2 {} public interface Interface1 {} Warum ruft der zweite Aufruf mandatorydie überladene Methode auf Class2, wenn getInterface1und Interface1hat keine Beziehung zu Class2? public class Test { public static void main(String[] args) { Class1 class1 = …
Ich habe Probleme mit der Methodenreferenz in Kombination mit generischen Typen. Wir haben Code, in dem wir eine überladene Methode aufrufen müssen, aber sie schlägt mit einem Fehler fehl: Wert m1 () kann nicht aufgelöst werden Ich habe mein Problem vereinfacht, um klar zu machen, wo das Problem liegt. Der …
Ich habe eine Bibliothek, die einen Dienstprogramm-Typ ähnlich dem folgenden exportiert: type Action<Model extends object> = (data: State<Model>) => State<Model>; Mit diesem Dienstprogramm können Sie eine Funktion deklarieren, die als "Aktion" ausgeführt wird. Es erhält ein allgemeines Argument dafür, Modeldass die Aktion gegen sie vorgehen wird. Das dataArgument der "Aktion" …
Ich versuche, generische Algorithmen in C # zu schreiben, die mit geometrischen Objekten unterschiedlicher Dimension arbeiten können. Im folgenden erfundenen Beispiel habe ich Point2und Point3beide implementieren eine einfache IPointSchnittstelle. Jetzt habe ich eine Funktion GenericAlgorithm, die eine Funktion aufruft GetDim. Je nach Typ gibt es mehrere Definitionen dieser Funktion. Es …
Ich versuche einen Typ zu erstellen, der dem von Rust Resultoder Haskell ähnelt, Eitherund ich bin so weit gekommen: public struct Result<TResult, TError> where TResult : notnull where TError : notnull { private readonly OneOf<TResult, TError> Value; public Result(TResult result) => Value = result; public Result(TError error) => Value = …
Ich habe zwei Schnittstellen in Java (Version 8), die sehr ähnlich sind. Ich kann die Schnittstellen nicht ändern und kann die Klassen, die sie implementieren, nicht ändern. public interface A { int get(); } public interface B { int get(); int somethingelse(); } Jetzt habe ich eine Funktion, deren Implementierung …
Ich habe eine Schnittstelle, die eine Methode mit dieser Signatur enthält: <P extends MergeProperty<T> & RestartApplicant> List<P> loadPropertiesFrom(T p1, T p2); Grundsätzlich MergePropertyhandelt es sich um eine Klasse, die NICHT implementiert wird RestartApplicant, und RestartApplicanteine funktionale Schnittstelle, die eine Methode enthält, die für das Verständnis dieses Problems nicht wirklich wichtig …
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.