Страницы

Поиск по вопросам

пятница, 23 ноября 2018 г.

Как определить что произошел импорт класса?

Есть ли библиотеки для java позволяющие на этапе компиляции определить, что некий класс импортируется там, где это не желательно?
Как я это вижу:
@VisibleFor(some.packagee.name) public class AlmostPublic { // ... }
И теперь попытка импортировать класс AlmostPublic в любом месте за пределами пакета some.packagee.name должна вызвать ошибку компиляции.


Ответ

Если вы хотите следить за командой разработчиков, к которым у вас есть доступ, то вы можете скачать расширение для IntelliJ - Chekstyle-IDEA(вы так же можете скачать его для Maven). Суть такая: вы запускаете проверку, и Chekstyle показывает вам ошибки, т.е. где по "её" мнению код написан в неверном стиле(это по умолчанию). Но вы можете добавить туда собственные фильтры, например import .... Вы даже можете настроить IDEA так, что бы проверки пред компиляцией выполняла Chekstyle(т.е. точно так же, как у вас из-за ошибки не компилируется код, у вас он не будет компилироваться из-за импорта класса, если вы это все настроили).
Если вы пишите (допустим) библиотеку, т.е. вы не сможете следить за разработкой программ, кот. используют ваш класс, то как уже писали, вы не можете запретить создание импортов на уровне компиляции. Тогда вы можете запретить создавать объекты своего класса, т.е. определить дефолтный конструктор как default(т.е., вообще без модификатора) - сделать его доступным только внутри пакета(package).

Комментариев нет:

Отправить комментарий