Murayama blog.

プログラミング教育なブログ

Enumでシングルトン

Enumはシングルトンとして使うことができる。by Effective Java

package en1;

public enum SampleEnum {

	SINGLETON("insance_name");

	private SampleEnum(String name) {
		this.name = name;
	}

	final private String name;

	public void showName() {
		System.out.println(this.name);
	}
}

呼び出し側。

package en1;

public class Main {

	public static void main(String[] args) {
		SampleEnum.SINGLETON.showName(); // => instance_name
	}
}

ちなみに、Enumはstatic importと組み合わせると型名を省くことができる。こんなかんじ。

package en1;

import static en1.SampleEnum.*;

public class Main {

	public static void main(String[] args) {
		SINGLETON.showName();
	}
}

でもこうなると、SINGLETONって、なんのシングルトンだよ、ってかんじがするので、
Enumでシングルトンを実装する際は、定数名の方が大事になるのかな。
名前重要ってことで。