Das bedeutet, dass es sich um eine Klasse beliebigen Typs handeln kann. ? ist ein Platzhalter, der die Menge aller Typen oder "any" bezeichnet. Das kannst du später tun
%Vor%oder
%Vor%Wenn Sie keine Generika in Java kennen, lesen Sie Ссылка
Was das Warum betrifft, so könnte ich meinen, dass Sie Generika überall verwenden und Ihr Code nicht mit älteren Java-Versionen kompatibel ist, oder vielleicht ein paar Trigger-Happy-IDEs zum Schweigen bringen. Und ja,
%Vor%und
%Vor%sind gleichwertig.
Auch die generische Version
%Vor%entspricht ziemlich genau der Raw-Type-Version,
%Vor%Der Hauptunterschied besteht darin, dass der letztere mit Java-Versionen kompatibel sein wird, die keine Generika wie Java 1.4 unterstützen.
Klasse & lt; T & gt; bedeutet, dass Klasse seit JDK 1.5 durch den Typ definiert wird, den die Klasse definiert. Eine Möglichkeit, darüber nachzudenken, ist, dass Class eine Factory zum Erstellen von Instanzen seines Typs ist.
Genauer gesagt, eine Klasse & lt; T & gt; Erstellt Instanzen des Typs T aus der Class.newInstance () -Methode.
Ab JDK 1.5 wird von der Java-Sprachspezifikation empfohlen, dass Sie keine rohen Typen verwenden sollten. Es wird daher dringend empfohlen, dass Sie bei einer Klasseninstanz unbekannten Typs als "Klasse & lt;? & Gt;" und nicht nur "Klasse". Natürlich, wenn Sie den Typ oder etwas gebunden kennen, können Sie einige Vorteile finden, wenn Sie ihn spezifizieren.
Klasse oder Klasse & lt;? & gt; funktioniert genauso gut. Ein Grund, Letzteres zu verwenden, ist, einige Warnungen loszuwerden, die die IDE oder der Compiler auf Sie werfen würden, wenn Sie das erste Formular verwenden.
Ich bezweifle, dass das Hausaufgaben sind, da ich nie in einer Klasse gewesen bin, die über Reflexion gesprochen hat.
Aber das ist eine einfache Null-Zuweisung. Es macht nichts.
Class ist eine parametrisierbare Klasse, daher können Sie die Syntax Class verwenden, wobei T ein Typ ist. Wenn Sie Class schreiben, deklarieren Sie ein Class-Objekt, das beliebigen Typs sein kann (? Ist ein Platzhalter). Der Klassentyp ist ein Typ, der Metainformationen über eine Klasse enthält.
Es ist immer gut, sich auf einen generischen Typ zu beziehen, indem Sie seinen spezifischen Typ angeben, indem Sie die Klasse verwenden, die Sie beachten (Sie wissen, dass Class parametrisierbar ist), aber Sie beschränken Ihren Parameter nicht auf a spezifischer Typ.
Referenz zu Generika und Wildcards: Ссылка
Referenz zu Klassenobjekt und -reflexion (das Merkmal der Java-Sprache, das verwendet wird, um sich selbst zu untersuchen): Ссылка