Kenichi Maehashi's Blog
脳内コアダンプ

Java のインスタンス初期化子
Friday | September 21, 2012
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 ") も短い…!
コメント (0)
コメント


<< 前ページ[1]

トップページに戻る
Copyright © 2006-2021 Kenichi Maehashi, All Rights Reserved.