Этот вопрос был задан аналогично: Java: Видимость подпакета?
Моя текущая структура пакета:
src/
| library/
| | InterfaceA.java
| | ClassB.java
| | provider/
| | | ClassofInterfaceA.java
| user/
| | UsageOfClassofInterfaceA.java
Таким образом, ClassOfInterfaceA.java
использует методы из ClassB.java
и реализует Interface.java
.
Наш пользователь, создавший класс UsageOfClassOfInterfaceA.java
, должен иметь доступ только к методам из ClassOfInterfaceA.java
. Он не должен иметь доступа к какому-либо классу / интерфейсу / переменной или методу из пакета библиотеки.
Поскольку ответы на связанный вопрос больше направлены на тесты junit и то, как их использует среда IDE, я не смог найти никаких ответов.
Пожалуйста, не рекомендуйте никакую другую структуру пакета, так как это предопределено нашим лектором.
Заранее спасибо:)
РЕДАКТИРОВАТЬ: так как он был задан, все классы в настоящее время являются публичными, потому что я не могу обратиться к ним через мой ClassOfInterfaceA.java
Я также должен использовать Java8.
Чтобы обратиться к фабрике, пользовательский интерфейс будет использовать ClassOfInterfaceA.java
для демонстрации их использования. Так что UsageOfClassOfInterfaceA.java
по сути является классом пользовательского интерфейса.