wie automatisch kopieren von Werten aus java-bean zu protobuf message-Objekt mit java-reflection?

In der Regel konnte ich kopieren von Werten zwischen zwei java-beans , die über identische Namen für die Eigenschaft, mit beanutils mit java-reflection z.B. PropertyUtils.setProperty(....)

In protobuf Nachricht, die wir verwenden, der message-generator-Klasse, um den Wert festzulegen. Dies funktioniert, aber ich würde eher reflektion verwenden, um automatisch kopieren von Eigenschaften aus der Bohne in die Nachricht als identisch property-Namen und-Typ.

Wann rufe ich den PropertyUtils.setProperty auf dem builder-Objekt ( bekam von der Nachricht.newBuilder() ) , bekomme ich diese Meldung.

java.lang.NoSuchMethodException: Eigenschaft 'testProp' hat keine setter-Methode in der Klasse 'class teststuff.TestBeanProtos$TestBeanMessage$Builder'

Wie kann ich automatisch kopieren von Werten aus java-bean zu protobuf message-Objekt ( und Umgekehrt) mit Hilfe der java reflection ?

  • Tun Builder setTestProp Methode?
  • Ich sollte darauf hinweisen, dass das Ziel java-Objekt ist eine Instanz von com.google.protobuf.GeneratedMessage , die unveränderlich sind Bohnen. Daher kann die Verwendung von Raupen oder einfache reflektion Lesen/schreiben auf GeneratedMessage wird nicht funktionieren.
InformationsquelleAutor user193116 | 2010-10-29
Schreibe einen Kommentar