同じクラスの2つのインスタンスがあります.1つはすべてのフィールドに値を持ち、もう1つは一部のフィールドだけです(他のフィールドはnullです)。 2番目の値を使用して最初のオブジェクトの値を更新する場合は、nullでない場合にのみ更新します。このような何か:私はフィールドがたくさんある、と私はすべての私のオブジェクトにそのメソッドを実装する必要がある場合同じクラスの別のインスタンスからオブジェクトフィールドを取り込みます
class MyObject {
private void setObject(MyObject other) {
if (other.getField1() != null) this.field1 = other.getField1();
.....
}
}
setObjectメソッドのコードは本当に長いです。私はそれがより一般的な方法で行うことができるかどうか疑問に思っていた:引数としてオブジェクトを取得する - >フィールドを反復 - >ヌルでない場合、
私はこれを行うためにいくつかのリフレクションの使用を試みましたが、今は失敗しています。
これは反射で行うことができます。質問に試したコードを含めてください。 –
あなたの質問は、基本的にhttps://stackoverflow.com/questions/1667854/copy-all-values-from-fields-in-one-class-to-other- through-reflectionの特殊なケースです。宛先クラスは同じです。 – azurefrog
@azurefrog値をコピーする前にロジックを実行する必要があるので、正確にはそうではありません(ヌルチェック) – Sabrina