Meine Klasse beginnt mit
%Vor% Jetzt irgendwo im Code möchte ich H.class
schreiben, aber das ist nicht möglich (wie String.class
oder Integer.class
ist).
Können Sie mir sagen, wie ich die Class
der generischen bekommen kann?
Sie können den Typ dynamisch angeben, der Compiler erledigt dies jedoch nicht automatisch für Sie.
%Vor%BTW: Es ist nicht unmöglich, dies dynamisch zu bekommen, aber es hängt davon ab, wie es benutzt wird. z. B.
%Vor%Es ist möglich zu bestimmen, dass Arnie.class eine Superklasse mit einem generischen Parameter von MuscleHero hat.
%Vor% Der generische Parameter der Superklasse ist in diesem Fall nur H
.
Eine Möglichkeit besteht darin, den Verweis auf Ihren parametrisierten Typ so zu halten, als hätten Sie ein Attribut von
%Vor% Und erstellen Sie einen Setter oder einen Konstruktor, der ein Class<H>
übernimmt.
Parametrisierte Typen werden zur Laufzeit gelöscht, weshalb Sie nicht tun können, was Sie fragen.
Tags und Links java class parameterized generics types