Proxy.newProxyInstance やばい @hideがベイビー・サブミッション

[twitter:@esmasui]さんがごく普通に使ってて、"え、ぬこ知らないの?情弱なの?ふーんそう。"みたいなオーラ出されて涙目です。

Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle

発端は id:esmasui:20110130:1296339520 だったと記憶しています。
この記事の中で使っている、DelegateFactory て?何? 見た感じ便利そう!ってなって、ますいさんに聞いたのでした。

したら、公開してないっていうから、して!ってお願いしたら 置いてくれた のでした。

で、置いてやったのだし わかめ お前 解説 書け。って言われたので書いた。

なんなん?

簡単に言うと、@hide デストロイヤー

どするん?

以下のような感じで使う。
Main1.java が@hideも自由に使える中の人モード。
Main2.java がそれに対して、辛うじて@hideなクラスのインスタンスが取れたりする僕達パンピー
IBridgeやIData1, 2みたいなIFだけ用意してやってProxyで見た目的にそれなりに普通っぽく書けるようになってます!
型安全性という点ではもうかわいそす…なんだけど、Reflectionでぐちょぐちょ書かずに簡潔にかけるのは素晴らしいです!

https://gist.github.com/838957