【问题标题】:Having an Interface provide an instance of a Class that implements it让接口提供实现它的类的实例
【发布时间】:2019-03-06 20:50:24
【问题描述】:

如果我有接口:

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 对象?

【问题讨论】:

    标签: java class interface singleton


    【解决方案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 }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多