2016-06-10 30 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 –