shokosブログ

プログラミング

定数固有メソッド実装

Enumで抽象メソッドを定義して、それを定数ごとにOverrideできるってことを、今日Effective Java読んではじめて知りました。
定数固有メソッド実装というらしい。かっこいい。

具体的にはこんな書き方ができる。

package jp.ne.hatena.syoko_sasaki;

public enum Character {

	AZU {
		@Override
		String mederu(String name) {
			return name + "にゃんぺろぺろ";
		}
	},
	RUIZU {
		@Override
		String mederu(String name) {
			return name + "!" + name + "!" + name + "!" + name
					+ "ぅぅうううわぁああああああああああああああああああああああん!!! あぁああああ…ああ…あっあっー!あぁああああああ!!!"
					+ name + name + name + "ぅううぁわぁああああ!!!";
		}
	};

	abstract String mederu(String name);

}

Java書き始めて2年半たつけど知らなかった・・・。
Effective Javaしっかり読もう。おもしろいし。