Можно ли запретить зависимости в классе с помощью аннотации? - PullRequest
0 голосов
/ 17 января 2020

Мне нужно запретить импорт классов из какого-либо пакета в некоторые классы моего проекта java8. Можно ли создать какую-то аннотацию, такую ​​как @NoSomePackage, чтобы проверить, есть ли запрещенные импорты в классе, и прервать компиляцию, если они есть?

1 Ответ

0 голосов
/ 17 января 2020

Зависит от того, контролируете ли вы тот пакет, из которого импортируете. Если некоторые классы нельзя импортировать из внешнего мира, рассмотрите возможность сделать их закрытыми или закрытыми для пакета (без модификатора доступа).

Если вы не контролируете этот пакет и вам все еще нужно запретить импорт некоторых классов, рассмотрите возможность создания и использования какого-либо фасада вместо целевого пакета, см. https://en.wikipedia.org/wiki/Facade_pattern. Это не пуленепробиваемое решение, но оно увеличит вероятность того, что вы не будете использовать этот класс по ошибке.

Насколько я знаю, нет никакой возможности запретить импорт видимого класса в путь к классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...