>>223はオリジナルの>>196が汚いから仕方ない

まあ、Fooクラス等のJavaの冗長な所まで無理に>>196を真似るなら
こんな感じかな

http://ideone.com/405Em