Throwableを継承したクラス生成時のチェック
今日のHack。これまた、某同僚から聞いた困った報告が元ネタです。
時と場合によりけりですが、Throwableを継承したクラスをデフォルトコンストラクタでnewしないで欲しいと思うケースがあります。「スタックトレースだけ出力されても、詳細メッセージが分かんね〜よ!」って現地で苦労しないためのHackです。
/** * @when * newInstance.target.parameters = () */ public void found(CtNewInstance<? extends Throwable> newInstance, Messager messager) { messager.warn(newInstance, "Throwableを継承したクラスをデフォルトコンストラクタでnewしています。"); }
いいですね、これ。ちょっと修正すれば、応用も利きますね。