Ist es möglich, die Mitglieder einer Klasse in Java zu durchlaufen?

8

Ich habe einen DTO, der eine ganze Reihe von Mitgliedern hat. Ich habe mich gefragt, ob Java die Idee von einem (in) für die Klasse unterstützt. Ich glaube nicht, dass es das tut, aber es würde mir eine Menge Leid ersparen, wenn es so wäre, also dachte ich mir, ich würde die Frage da draußen rauswerfen.

    
Genia S. 30.10.2009, 21:51
quelle

5 Antworten

26

Nun, Sie können es mit Reflektion tun:

%Vor%

(oder das Äquivalent für Methoden usw.)

Sie können dann die Feldwerte für eine bestimmte Instanz oder statische Werte abrufen.

    
Jon Skeet 30.10.2009, 21:53
quelle
7

Es tut, aber es ist ein bisschen mühsam.

Sie müssen Reflexion verwenden.

Siehe: Class.getDeclaredFieds ()

  

Gibt ein Array von Field-Objekten zurück, die alle Felder widerspiegeln, die von der durch dieses Klassenobjekt dargestellten Klasse oder Schnittstelle deklariert wurden

Sie können ein Beispiel hier

sehen
  

Es gibt drei Möglichkeiten, ein Field-Objekt von einem Klassenobjekt zu erhalten.

%Vor%

Weitere Optionen finden Sie in der Klassendefinition Klasse .

    
OscarRyz 30.10.2009 21:56
quelle
4

Ja, verwenden Sie die Reflection-API . Überprüfen Sie insbesondere die Methoden getFields und getMethods von Class .

    
João Silva 30.10.2009 21:53
quelle
0

Sie können Reflektionen verwenden, um alle Mitglieder und Funktionen zu erhalten.

Vielleicht müssen Sie sich fragen, warum dieser DTO so viele Mitglieder hat, dass Sie das für notwendig halten. Könnte Zeit für Refactoring sein.

    
duffymo 30.10.2009 21:53
quelle
0

Sehen Sie sich den Reflexionsrahmen an, in dem Sie die Klasse nach diesen Informationen durchsuchen können.

Ссылка

    
Jé Queue 30.10.2009 21:54
quelle

Tags und Links