ネタ帖
Irenkaが出来たら作りたいハック。今後メモしていくことにする。だいぶ脳内から抜け落ちちゃったので遅いけど。
コンストラクタ自動連動生成
新しいコンストラクタを作ったせいで、デフォルトコンストラクタが無くなったら、自動的に作成済みの継承クラスに同じシグネチャのコンストラクタを追加するというのが欲しい。流れ的には…
// 初期状態 class A { } class B extends A { } // 以下で Aをセーブ class A { public A(Object param) { } } // すると Bにも自動的に作成 class B extends A { public B(Object param) { super(param); } }
継承クラスが沢山あった時に重宝する。アノテーションじゃない方がいい。オプションとしてその作成したコンストラクタのJavaDoc内に、コンストラクタを@linkで改変したクラスを通知してくれると良いかも。
//こんな感じで。 class A { /** * @以下のコンストラクタを自動生成しました * {@link B#B(Object) } * {@link C#C(Object) } * {@link D#D(Object) } */ public A(Object param) { } }
@StrictWarnings
SuppressWarningsの逆。あんまり使わないけど、例えば普段は警告してほしくないけど、これに限っては警告して欲しいなぁという場合に使う。他の昔の処理系は大抵コンパイラスイッチをメタでソースコードに入れられましたしね。
たとえば、普段は列挙値のswitchで全てのメンバがなくても警告出したほしくないんだけど、ピンポイントで、このメソッドでは警告出ないと列挙値にメンバが増えた時にまずい…というような場合。
いらねー。頭に - つけるだけで良かったんだった。もとい、javac -Xlint -X はそうでもSuppressworningにマイナスは効かないようだ。