Ohne Beweise glaube ich, dass Sie über die Unterstützung von Java's Generics sprechen. .
Generics ermöglichen es Ihnen, über Typen zu abstrahieren
Vor Java 5 war es schwierig, Klassen bereitzustellen, die in der Lage waren, mehrere verschiedene Arten von Objekten zu unterstützen, ohne für jede spezifische Situation codieren zu müssen. Daher war es üblich, dass Personen stattdessen Object
übergaben.
Dies führt zu vielen schwierigen Entscheidungen, die Sie zur Laufzeit treffen müssen. Sie müssten eine Laufzeitprüfung durchführen, um zu sehen, ob es möglich ist, ein bestimmtes Objekt in einen verwendbaren Typ zu konvertieren ... zum Beispiel
%Vor% Nun, das ist ziemlich offensichtlich, aber wenn Sie nur ein List
übergeben würden, müssten Sie jedes Element in der Liste auf Korrektheit prüfen ...
Aber jetzt können wir das tun ...
%Vor%Dies ist ein Vertrag, der im Grunde sagt "Diese Liste enthält nur Integer-Typen von Objekten".
Mit Generics können Sie eine einzelne Klasse erstellen, die mehrere verschiedene Datentypen oder eine Familie von Datentypen verarbeiten kann (dh den Parameter so einschränken, dass er von einem bestimmten übergeordneten Typ erweitert werden muss).
%Vor% Grundsätzlich bedeutet dies, dass Objekte enthalten sein werden, die von Number
erben, einschließlich Integer
, Long
, Double
, Float
...
Oft werden Sie bei Methoden- und Klassenverzögerungen etwas Ähnliches sehen ...
%Vor%oder
%Vor% Damit können Sie auf T
verweisen, als wäre es ein konkreter Objekttyp, zum Beispiel ...
Dies erlaubt dem Compiler (und JVM) den Marker T
mit einem Concert-Typ zu ersetzen (okay, es ist etwas komplizierter als das, aber das ist die Magie) ...
Dies ermöglicht Dinge wie ...
%Vor%Und wissen Sie, dass es immer nur den Typ des angegebenen Objekts akzeptieren wird ...
Lesen Sie den Link im ersten Absatz, ich bin mir sicher, dass er mehr Gerechtigkeit schaffen kann, als ich es kann;)
So definieren Sie eine generische Klasse in Java: Grid
ist die Klasse und E
ist ein formaler Typparameter.
Wenn Sie wirklich daran interessiert sind, erfahren Sie hier eine sehr gute Referenz - Häufig gestellte Fragen zu Java Generics FAQs Fragen
das sind generische Typen hier . Einfache Beispiele wären
%Vor%Es ist unklar, was Sie fragen, ohne zu sehen, was genau Sie sehen. Aber wahrscheinlich sehen Sie Generics in Java. Erfahren Sie mehr darüber
Grundsätzlich geht es darum, in Java die Typsicherheit zu erhöhen. Eine Deklaration wie List<Integer> intList
bedeutet also, dass intList
ganze Zahlen enthält. Und wenn Sie versuchen, einen, sagen wir, String zu setzen, wird ein Kompilierungsfehler ausgelöst.