Was bedeutet der TYPE in Java?

7

Ich habe Deklarationen, Interfaces und Klassen gesehen, die TYPE<CLASS>

enthalten

Was bedeutet das?

    
tref95 29.09.2012, 02:59
quelle

4 Antworten

20

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 ...

%Vor%

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;)

    
MadProgrammer 29.09.2012, 03:06
quelle
9
%Vor%

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

    
Bhesh Gurung 29.09.2012 03:05
quelle
3

das sind generische Typen hier .  Einfache Beispiele wären

%Vor%     
PermGenError 29.09.2012 03:05
quelle
1

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.

    
Nishant 29.09.2012 03:06
quelle

Tags und Links