java reflection um field / value hashmap zu erzeugen

8

Ich muss eine Hashmap von Feldern / Werten erstellen, die in einer Entity enthalten sind, so dass ich sie verwenden kann, um sie in einem String zu ersetzen, der Tags mit den Feldnamen enthält.

Ich habe diesen Code:

%Vor%

Dies ersetzt alle Tags, die in message für die entsprechenden Werte in tags gefunden wurden. Um jedoch die Map-Tabelle zu erstellen, muss ich wählen "beliebige" Entität und in der Lage sein, eine Karte von der Entität zu erstellen. Also, wie könnte ich das möglich machen? um eine Routine zu bekommen, wo ich die Entity sende und eine Map mit allen Feldern und Werten als Rückgabe bekomme.

%Vor%

Ich weiß, dass ich Reflektion verwenden könnte und dies ist der einzige Ansatz, den ich gefunden habe, um dies zu erreichen, aber gibt es einen anderen Weg, dasselbe zu erreichen ?, ich meine einen effizienteren Weg.

Danke.

    
Joe Almore 29.11.2011, 06:06
quelle

2 Antworten

9
%Vor%

O, und deine Entität sollte ein Objekt deiner Klasse sein, nicht deine Klasse selbst. Wenn Ihre Felder privat sind und Sie Getter für sie haben, sollten Sie getMethods () verwenden und prüfen, ob der Methodenname mit dem Präfix "get" beginnt. Wie folgt:

%Vor%     
shift66 29.11.2011, 06:15
quelle
0
  

Ich weiß, ich könnte Reflektion benutzen und dies ist der einzige Ansatz, den ich habe   gefunden, um dies zu tun, aber gibt es einen anderen Weg, um das zu erreichen   gleich?

Soweit ich weiß, ist Reflektion die einzige Möglichkeit, dies zu erreichen, es sei denn, die Klasse (n), aus denen Sie die Karte erstellen wollen, implementieren eine Schnittstelle und Ihr Code, der die Karte extrahiert, kennt diese Schnittstelle.

>     
esaj 29.11.2011 06:16
quelle

Tags und Links