Klasse der generischen Klasse erhalten

7

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?

    
Sean Patrick Floyd 25.03.2011, 13:34
quelle

5 Antworten

7

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 .

    
Peter Lawrey 25.03.2011, 13:42
quelle
15

Wir machen es auf die folgende Weise:

%Vor%     
kospiotr 05.11.2011 09:03
quelle
2

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.

    
Buhake Sindi 25.03.2011 13:44
quelle
1

Sie können es tun, ohne die Klasse zu übergeben:

%Vor%

Sie benötigen zwei Funktionen aus dieser Datei: Ссылка

Für weitere Erklärungen: Ссылка

    
Peter Tseng 17.01.2013 21:28
quelle
0

Sie können nicht - der Typ wird zur Laufzeit gelöscht und existiert nur zur Kompilierzeit.

    
Puppy 25.03.2011 13:36
quelle