- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:メソッド取得方法)
メソッド取得方法の最適化
このQ&Aのポイント
- メソッド取得方法の最適化について相談です。現在、setter getter を書いたクラスから、値が set されたものだけを見つけ出し、get メソッドを呼び出していますが、もっとスマートな方法はないでしょうか?
- 具体的には、public void getSer( Object object ) メソッドで、get メソッドの数だけ getMethodList の中を繰り返す必要があります。
- 効率的な方法があれば、教えていただきたいです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私もちょっと考えてみましたが、結局【値がsetされているかどうか】ということは都度違うわけなので、毎回全てのプロパティ値を精査しなくてはならないのは避けて通れないのではないでしょうか。 もし、リフレクションにおけるコストを懸念されるのであれば、このObjectの基底クラスに定義されたプロパティ値でsetされているもののみを返却するメソッドをabstractで定義し(Interfaceでも可)、実装する、、、みたいな。これだと直接的なので呼び出し時にリフレクションによるコストは削減されると思いますが、実装が必須になるから面倒かな・・・。 もしくは、基底クラスにMapかListを用意して、getter,setterが呼び出された場合必ずそのMapやListに対してプロパティに値がsetされた情報、もしくはremoveされた情報を溜め込むようにして、必要な場合にそのMapかListを返却するようにする。。。これはこれで、getter,setter時にコストがかかりますが。。。 ただ、私も実装するのであれば、takuya_mさんのような実装になりそうな気がしますが・・・。 有効な回答でなくて申し訳ありません・・・。
お礼
回答ありがとうございます。 自分も、何度も何度も考えたのですが、braver_2004さんの回答通りです・・。 もう少し考えたいと思います・・ 今回は、本当にありがとうございます・・。