今週も鈴木タイムラー

テレビ朝日 日曜日 4:15〜4:45。
http://www.thefreemall.jp/suzukitimeler/about/about.html
また見ちゃたよ。
先週の「おそば屋さんの一日」は初めて番組を目にしたカルチャーショックの所為で全然あたまに入らなかったけれど、今回の「お風呂屋さんの一日」は少しだけあたまに入りました。
風呂屋さんのコアタイムは閉店前の駆け込みが多い23:45です。
風呂屋さんが好きな時間ランキング1位は一日の仕事が終わってホッとできる02:00です。
井戸水と水道水は4:1だってさ。
でも、先週のリポーターとの掛け合いの方が面白かったな。
やっぱり、リポーターと司会者は毒を吐き合っている方がいいなぁ。

cglibをごにょごにょする

SeasarやSpring、Hibernateで使用されているcglibを調べるために「Code Generation Library」からソースとJavaDocを取得してくる。
Enhancer#create(…)から始めてAbstractClassGenerator#create(…)、Enhancer#firstInstance(…)、Enhancer#createUsingReflection(…)、ReflectUtils#newInstance(Class, Class, Object)、ReflectUtils#getConstructor(…)、ReflectUtils#newInstance(Constructor, Object)と追って行く。
ReflectUtils#getConstructor(…)の中では取得したてのConstructorにsetAccessible(true)をしているのだが、それを受け取るReflectUtils#newInstance(Constructor, Object
)の中では「一旦Constructorのaccessibleを退避させてからtrueにし、インスタンスを取得してから退避していたのを戻す」という処理をしている。
一時的にtrueにする処理があるのにReflectUtils#getConstructor(…)の中のsetAccessible(true)って必要なの?
……っていうか、ずっとtrueになったままでいいの?
ちょっと気になったけど、眠くなったので調査は断念。
getConstructor(…)で生成したコンストラクタを他のところでアクセスしてるのか?そいでもってnewInstance(Constructor, Object[])の方は外部から呼ばれたときのために退避機構を入れてるとか?