質問: getmethodlist[i].invoke(object, null).tostring(); } } このような場合、getメソッドの数だけ getmethodlist の中を 繰り返さないといけないので・・。 ご教授、よろしくお願いします。
回答: 私もちょっと考えてみましたが、結局【値がsetされているかどうか】ということは都度違うわけなので、毎回全てのプロパティ値を精査しなくてはならないのは避けて通れないのではないでしょうか。 もし、リフレクションにおけるコストを懸念されるのであれば、このobjectの基底クラスに定義されたプロパティ値でsetされているもののみを返却するメソッドをabstractで定義し(interfaceでも可)、実装する、、、みたいな。これだと直接的なので呼び出し時にリフレクションによるコストは削減されると思いますが、実装が必須になるから面倒かな・・・。 もしくは、基底クラスにmapかlistを用意して、getter,setterが呼び出された場合必ずそのmapやlistに対してプロパティに値がsetされた情報、もしくはremoveされた情報を溜め込むようにして、必要な場合にそのmapかlistを返却するようにする。。。これはこれで、getter,setter時にコストがかかりますが。。。 ただ、私も実装するのであれば、takuya_mさんのような実装になりそうな気がしますが・・・。 有効な回答でなくて申し訳ありません・・・。