让接口提供实现它的 Class 实例
Having an Interface provide an instance of a Class that implements it
如果我有接口:
public interface Val {
public NilVal NIL;
}
以及实现它的单例 class:
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 对象?
你可以做到
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 }
}
如果我有接口:
public interface Val {
public NilVal NIL;
}
以及实现它的单例 class:
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 对象?
你可以做到
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 }
}