Javaのリフレクションについて、パフォーマンスの問題と、型安全の言語仕様の点から、リフレクションの使用はあまり好ましくないというのが一般的な見解かと思いますが、
「じゃあなぜ実装されているんだ?」
と思い、調べてみたら、
「非常に効果を発揮する場面でちょこっと使う」
という記事を見ました。

なんだその抽象的な説明は!ということで、どういう場面で使うべきでしょうか?

使いたいけど使っていいのかわからなかったシチュエーションが2回ありました。
下記について、どうすべきかもおしえてください。

  1. インスタンスの複製
    Aというエンティティーがあり、そのインスタンスを同一クラスに複製、
    もしくは別クラスで同名フィールドを持つクラスに複製するとき、
    それぞれのゲッターセッターを用いて1フィールドづつ代入すると、
    フィールド依存が強くて、フィールド変更時に大変だからリフレクションを使いたいな
    というケース

  2. バンドルクラスからそれぞれのクラスに分配
    Aというバンドルインスタンスがあり、そのインスタンスはデータベースのリレーションをひとまとめにしたクラスで、
    B, C, Dという分配先Entityに代入する。
    なかでもBは、Aから複数個生成され、
    ・AはBの共通項目をメンバ変数として持ち、Bの固有項目を内部クラス(X)のListとして持っている。
    ・Aの持っているCとDの項目は、共通項目として持っている。

ちょっと2個目はわかりずらいと思うので、わからなかったら結構です。
よろしくお願いします。