如何使用 "single-element enum type" 使这个 class 成为单例?

How to use the "single-element enum type" to make this class a singleton?

我有这个 class,我用这种方式作为单身人士使用:

FlagOfficer.instance().someVariable

这是 class 的当前实现:

public class FlagOfficer {

    public FlagOfficer() {

    }

    static FlagOfficer flagOfficer = null;

    public static FlagOfficer instance() {
        if (flagOfficer == null) {
            flagOfficer = new FlagOfficer();
        }
        return flagOfficer;
    }

    public boolean getLastBackupDate;
    public boolean syncProcessStartedOnce;
}

我正在阅读 "Effective Java" 这本书,他们说实现单例模式的最佳方法是使用单元素枚举类型

这是书中的一个例子:

public enum Elvis {
    INSTANCE;
    public void leaveTheBuilding() { ... }
}

那么如何转换我的 class 以便它使用这种模式?以及我之后如何使用它?

public enum FlagOfficer {
    // Enum instances/values should be declared first.
    // Use INSTANCE(arg1, ..) if constructor accepts agruments.
    INSTANCE; 

    // Constructor can accept arguments as well.
    private FlagOfficer() {

    }

    private Date lastBackupDate;
    private boolean syncProcessStartedOnce;

    public Date getLastBackupDate() {
        return lastBackupDate;
    }

    public boolean isSyncProcessStartedOnce() {
        return syncProcessStartedOnce;
    }
 }

用法:

FlagOfficer fo = FlagOfficer.INSTANCE;