让接口提供实现它的类的实例

时间:2019-03-06 20:50:25

标签: java class interface singleton

如果我有界面:

public interface Val {
    public NilVal NIL;
}

和一个实现它的单例类:

public class NilVal implements Val {

    private static NilVal nil = null;

    private NilVal() {
    }

    public static NilVal getInstance(){
        if(nil == null)
            nil = new NilVal();
        return nil;
    }
}

如何将NIL实例化为接口中的NilVal对象?

1 个答案:

答案 0 :(得分:1)

你可以

public interface Val {
    Val NIL = NilVal.getInstance();
}

但是你也可以做

public interface Val {
    Val NIL = new NilVal();

    class NilVal implements Val {
        private NilVal() { }
    }
}

甚至

public interface Val {
    Val NIL = NilVal.NIL;

    public enum NilVal implements Val { NIL }
}