Aus heutiger Sicht passt diese Frage nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich Debatten, Argumente, Abstimmungen oder erweiterte Diskussionen hervorrufen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden …
In objektorientierten Sprachen, die generische Typparameter unterstützen (auch als Klassenvorlagen und parametrischer Polymorphismus bezeichnet), ist es häufig möglich, eine Typbeschränkung für den Typparameter anzugeben, sodass er abgeleitet wird von einem anderen Typ. Dies ist beispielsweise die Syntax in C #: //for classes: class ExampleClass<T> where T : I1 { } …
Gemäß Regel 4 von Object Calisthenics von Jeff Bay (RTF) in The ThoughtWorks Anthology wird empfohlen, " erstklassige Sammlungen zu verwenden ". Regel 4: Erstklassige Sammlungen Die Anwendung dieser Regel ist einfach: Jede Klasse, die eine Sammlung enthält, sollte keine anderen Mitgliedsvariablen enthalten. Jede Sammlung wird in einer eigenen Klasse …
In einer anderen StackExchange-Frage habe ich festgestellt, dass jemand diesen Prototyp verwendet: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Wenn man bedenkt, dass es nur eine einzige Typbeschränkung gibt ( SomeSpecificReferenceType), was ist der Unterschied und der Vorteil, wenn man es so schreibt, anstatt einfach: void DoSomething(SomeSpecificReferenceType arg) …
Mein IDE ( NetBeans ) -Typ überprüft meinen CollectionsCode, während ich ihn eingebe. Aber warum muss ich dann das zurückgegebene Objekt von werfen Object.clone()? Welches ist in Ordnung. Kein Schaden kein Foul. Aber ich verstehe es immer noch nicht. Ist eine Typprüfung ohne Casting des zurückgegebenen Objekts Object.clone()nicht möglich? Das …
Einige Sprachen erlauben Klassen und Funktionen mit Typparametern (z. B. List<T>wo Tein beliebiger Typ sein kann). Zum Beispiel können Sie eine Funktion haben wie: List<S> Function<S, T>(List<T> list) In einigen Sprachen kann dieses Konzept jedoch um eine Stufe höher erweitert werden, sodass Sie eine Funktion mit der Signatur haben: K<S> …
In der Arbeit „Eine erweiterte vergleichende Studie zur Sprachunterstützung für generisches Programmieren“ von Garcia et al. Ein interessanter Vergleich der Programmiersprachenfunktionen für die generische Programmierung wird gegeben: mit der kurzen Erklärung der Terminologie: Kann jemand die Scala-Unterstützung für die generische Programmierung in diesem Framework testen? Dh fügen Sie eine Spalte …
Ich habe einige Schnittstellen, die von Dritten in Zukunft implementiert werden sollen, und ich stelle selbst eine Basisimplementierung bereit. Ich werde nur ein paar verwenden, um das Beispiel zu zeigen. Derzeit sind sie definiert als Artikel: public interface Item { String getId(); String getName(); } ItemStack: public interface ItemStackFactory { …
Ich spiele seit einiger Zeit mit der Entwicklung von C # für Windows und ASP.net MVC. In einigen Bereichen bin ich jedoch noch unklar. Ich versuche, den grundlegenden Unterschied zwischen und Leistungsproblemen bei der Verwendung und dem Austausch ähnlicher Arten von generischen Sammlungsschnittstellen zu verstehen . Was ist der grundlegende …
Ich programmiere momentan in einem akademischen Umfeld, damit ich alles verwenden kann, was ich will. Ich verwende die Boost-Diagrammbibliothek für einige Dinge und frage mich, ob es sich lohnt, Anstrengungen zu unternehmen, um GP besser zu verstehen. Ich bin neugierig - wird generische Programmierung (GP) in der Industrie häufig verwendet? …
Ich benötige eine Schnittstelle, die sicherstellt, dass eine bestimmte Methode, einschließlich einer bestimmten Signatur, verfügbar ist. Bisher habe ich Folgendes: public interface Mappable<M> { M mapTo(M mappableEntity); } Das Problem tritt auf, wenn eine Klasse mehreren anderen Entitäten zugeordnet werden kann. Der Idealfall wäre dies (nicht Java): public class Something …
Warum ist es so, wenn ich versuche, ein Array von ArrayLists zu erstellen: ArrayList<Integer>[] arr=new ArrayList<Integer>[40];Es liegt ein Fehler vor und Java lässt dies nicht zu? Gibt es einen Grund für die Implementierung von Generika, Generika in einer beliebigen Sprache oder etwas Willkürlichem in Java?
Setup: Nehmen wir an, wir haben einen Typ namens, Iteratorder einen Typparameter hat Element: interface Iterator<Element> {} Dann haben wir eine Schnittstelle, Iterabledie eine Methode hat, die eine zurückgibt Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Das Problem mit Iteratorder Generizität …
Ich entwickle Code, der Generika verwendet, und eines meiner Leitprinzipien war es, ihn für zukünftige Szenarien und nicht nur für heutige Szenarien nutzbar zu machen. Mehrere Mitarbeiter haben jedoch zum Ausdruck gebracht, dass ich die Lesbarkeit möglicherweise aus Gründen der Erweiterbarkeit abgewogen habe. Ich wollte Feedback zu möglichen Lösungsmöglichkeiten einholen. …
Im Abschnitt "Generika" von Blochs "Effective Java" (das für alle das "kostenlose" Kapitel ist: http://java.sun.com/docs/books/effective/generics.pdf ) sagt er: Wenn ein Typparameter in einer Methodendeklaration nur einmal vorkommt, ersetzen Sie ihn durch einen Platzhalter. (Siehe Seite 31-33 dieses PDFs) Die fragliche Unterschrift lautet: public static void swap(List<?> list, int i, int …
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.