2016-06-10 34 views
0

我想了解使用枚举创建单身人士对象。 我写了这段代码。这是线程安全吗?如果不是请告诉我,如何使这个爪哇:单身人士使用ENUM ..是我的对象单身人士和线程安全

public enum MySingleton { 

    INSTANCE; 
    private static final Employee emp = Employee.getInstance(); 
    } 


public class Employee { 
    private static Employee emp; 

    public static Employee getInstance(){ 
    emp=new Employee(); 
    return emp; 
    } 
} 
+0

你读过这个http://stackoverflow.com/questions/70689/what-is-an-efficient-way-to-implement-a-singleton-pattern-in-java? –

+0

@ NicolasFilotto,是的,我did.still有困惑,关于如何使用Enum –

+0

您想要实现员工或MySingleton单身模式使用'员工'单身? –

回答

0

它不是线程安全的,因为Employee.getInstance()可以被多个线程调用,并返回一个或多个对象。

一个简单的解决方案是让Employeeinterface

public enum MySingleton implements Employee { 
    INSTANCE; 
} 

public interface Employee { 

} 

这是线程安全的实例的制作是线程安全的。

+0

@NicolasFilotto是的,谢谢。 –

+0

现在如何在这种情况下使用MySingleton.INSTANCE获得'Employee'对象 –

+1

@AnilKumar –