Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Computer
Java は長く使っていたつもりでしたが、今日「インスタンス初期化子」なるものを初めて知りました。ちょっと便利な記法ですが、使っている人はあまり見たことありませんね。

で、これコードゴルフっぽいものに使えそうだなぁと思いました。
  1. class C{public static void main(String[]args){}} // 48 bytes
  2. class C{static{}} // 17 bytes
  3. enum E{_;{}} // 12 bytes
今まで 1. の代わりに 2. を使っていたのですが、3. にすれば 5 bytes も短いですね。しかも 3. のインスタンス初期化子のブレース内は static コンテキストではないため、class (or enum) 内で定義するメソッドはインスタンスメソッドで良くなるので、1 メソッドあたり +7 bytes ("static ") も短い…!

Comments

Leave Yours...
Name:
E-mail / URL (optional):
Comment:
Are You Robot?: