Как скрыть пакет java от чего-либо, по крайней мере, на два уровня, удаленных в иерархии - PullRequest
0 голосов
/ 17 июня 2020

У меня есть структура пакета, которая выглядит так:

a
a.b
a.b.c

где a имеет сотни подпакетов помимо b, b имеет несколько подпакетов помимо c и c содержит много классов. Я хочу, чтобы a.b имел доступ к классам в a.b.c, но для классов вне a.b не имел доступа к ним. (Меня не волнует, может ли a.b.x получить к ним доступ.) Я знаю, что если бы я переместил классы из a.b.c в a.b, я мог бы сделать их закрытыми для пакета и предотвратить доступ к ним в другом месте, но это значительно загромождают источник, уменьшая понятность, и поэтому я не думаю, что это стоит компромисса. Есть ли другой более тонкий способ выполнить sh это?

Примечание: я рассмотрел этот другой вопрос , и хотя он похож, они спрашивают о противоположном направлении.

1 Ответ

0 голосов
/ 17 июня 2020

Только что пришла в голову новая идея - я мог бы добавить собственное правило lint, проверяющее, что классы a.b.c.* не доступны за пределами a.b. Это все еще не так хорошо, как те классы, которые изначально не доступны, но, по крайней мере, может указать на проблему, чтобы ее можно было исправить быстрее.

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