2016-05-13 4 views
0

Ich möchte gerne meine eigene Universal Binary JSON Specification-ähnliche Spezifikation implementieren. Als einen meiner ersten Schritte möchte ich eine Methode haben, die ein Objekt als Parameter annimmt, wie Gson in seiner String com.google.gson.Gson.toJson(Object src) Methode. Ich würde gerne die Felder und die Datentypen von ihnen kennen. So weit ich weiß, benutzt Gson die Reflexion, um das zu erreichen.Alternativen zu Reflection

Eine andere "Lösung" könnte Serialisierung sein. Aber es ist vielleicht schwierig, die Felder von dort zu extrahieren, und ich würde sowieso bevorzugen, dass es kein Muss für das Objekt ist, Serializable zu implementieren.

Ist Reflection der Weg zu meinen Absichten?

Antwort

2

Sie können Bean Introspection (siehe java.beans.Introspector) für eine sauberere, wenn auch eingeschränkter Ansatz betrachten.

Wenn Ihre Objekte keine reinen Beans sind (d. H. Sie müssen Felder ohne Getters oder Setter zuordnen), müssen Sie die Reflektion verwenden.

+0

Das sieht sehr vielversprechend aus. Vor allem die Methode'getBeanInfo (Class beanClass) 'klingt sehr gut. Der Bedarf an Getter und Setter sollte kein Problem sein. – Martin