Наличие интерфейса предоставляет экземпляр класса, который его реализует - PullRequest
1 голос
/ 06 марта 2019

Если у меня есть интерфейс:

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 Ответ

2 голосов
/ 06 марта 2019

Вы можете сделать

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 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...