1.5から、シングルトンに列挙型を使用できることを読みました
public enum Singleton {
INSTANCE;
//Singleton method
public void someMethod( ) {...}
}
Singleton.INSTANCE.someMethod( );
これは、列挙型のすべてのエントリがそれ自体でインスタンスであることを意味しますか? クラスで列挙型を定義する場合、列挙型のすべてのエントリでブロック同期を使用できますか?
class smokers extends Thread{
public enum restype{
TOBACCO,MATCH,PAPER
}
public void run(){
if(xxxx){
synchronized(restype.PAPER){
....
}
}
else
{
synchronized(restype.MATCH){
....
}
}
}
これは有効なコードですか?