ジェネリックとリフレクション

ぢみちに前に書いたサポートクラスを進化させていったり。
で、はじめは呼び出し元から引数で型をもらってインスタンス化してたんだけど。
これリターンするときメソッドの戻り値はobjectだったんでキャストしなくちゃいけないと。
これはこれで面倒だなぁと思ってたら「そういやジェネリックがあるじゃん」と閃きがw
せっかくなんでこれで実装してみようと作業開始。

protected object GetFormBean(Type typeName)
↓
protected T GetFormBean<T>()

ジェネリックに書き直し。
メソッドの内部もそれにあわせてちょこっとだけ修正。
といっても新しくインスタンスを作成するところだけだったけど。
このおかげで呼び出し元は

SampleFormBean bean = (SampleFormBean) GetFormBean(typeof(SampleFormBean));
↓
SampleFormBean bean = GetFormBean<SampleFormBean>();

すっかり綺麗(簡潔)に。
かなり自己満足したw
ついでにC#Javaジェネリックジェネリクス)の違いを調べてると細かいとこで差があったりするのね。


しかし、内部でリフレクション使って生成したクラスのプロパティに値をつめたりしてるんだけどやっぱコストかかってるのかな?
んーむ。