Ruft das äußere Klassenobjekt von einem inneren Klassenobjekt ab

7

Kurz gesagt, ich versuche das Gegenteil von " classObject.getDeclaredClasses() " zu tun.

Ich habe eine Methode, die ein Objekt vom Typ Class<? extends Object> empfängt. Ich möchte herausfinden, ob es sich um eine innere Klasse handelt, und wenn dies der Fall ist, möchte ich auf die Objektinstanz der umgebenden Klasse zugreifen.

Gibt es dafür eine intelligente API, oder bin ich gezwungen, einige Zeichenfolgen zu manipulieren und zu parsen?

    
Henrik Paul 29.10.2010, 11:05
quelle

2 Antworten

20

Sie suchen nach der Methode Class.getDeclaringClass() :

  

public Klasse getDeclaringClass ()

     

Wenn die von diesem Klassenobjekt repräsentierte Klasse oder Schnittstelle Mitglied von ist   Eine andere Klasse gibt das Class-Objekt zurück, das die Klasse darstellt, in der es steht   wurde erklärt. Diese Methode gibt null zurück, wenn diese Klasse oder Schnittstelle nicht a ist   Mitglied einer anderen Klasse. Wenn dieses Klassenobjekt eine Array-Klasse darstellt,   ein primitiver Typ oder void, dann gibt diese Methode null zurück.

     

Rückgabe: Die deklarierende Klasse für diese Klasse

    
Abhinav Sarkar 29.10.2010, 11:07
quelle
1

Verweis auf die äußere Klasseninstanz aus dem inneren Klassencode

Wenn innerer Klassencode einen Verweis auf die äußere Klasseninstanz benötigt, an die er angehängt ist, verwenden Sie den Namen der äußeren Klasse, einen Punkt und das

%Vor%

statische innere Klassen

Eine innere Klasse kann als statisch

markiert sein

Eine statische innere Klasse kann ohne eine Instanz der äußeren Klasse instanziiert werden

%Vor%     
yash 08.02.2011 12:21
quelle

Tags und Links