クレタ人のパラドックスをJavaで表現する

http://blog.netbeans.jp/roller/page/kishida/20041120#12463_12524_12479_20154_12398
(http://www.hyuki.com/tf/ 経由)

クレタ人のパラドックスを、Javaで再現する試み。オブジェクト生成の依存関係が循環して解決できなくなることで表現している。
ちょっとこれは無理無理じゃないですか。
たしかに、自己言及のパラドックス性の一面をJavaのコンストラクタ呼びだしの無限後退で表現できているけど、これでは推論の要素が全くないために自己言及しているもの全てがパラドックスになってしまう。例えば、普通はパラドックスとみなされない、上記の「正直」バージョン*1でもパラドックスになってしまっている。もともとクレタ人のパラドックスは、推論規則に従うと日常的な言葉でさえあり得なくなる、という結論がでてしまう意外性がおもしろいわけで、自己言及してるものを全てパラドックスと呼びうるこのコードにはちょっと納得いきません。
もうひとつ揚げ足をとると、これコンストラクタで「クレタ人」を設定するのをやめて、クレタ人setterを使って、自分自身に自分自身をセットしちゃえば何の問題もなく動作する、、気がする。んなことないかな?
同じパラドックスでも、「アキレスと亀」ならそのまま素直に実装できるよなあ。

*1:「『クレタ人は正直だ』とクレタ人が言った」