Закрытый класс пакета, видимый некоторым другим пакетам (с тем же именем) из другой исходной папки
Когда я проводил некоторое тестирование с пакетами и частными пакетами в Java, я заметил интересную вещь. Ниже приведена исходная структура моих проектов, класс MyTestClass.java
в упаковке com.test.pkg
в исходной папке src
класс, защищенный пакетом Насколько я понимаю, это не должно быть доступно за пределами этого пакета. Но, интересно MyTestClass.java
класс доступен в com.test.pkg
в исходной папке test
также. Это происходит, только если имена пакетов совпадают, хотя они находятся в разных исходных папках.
Может кто-нибудь сказать мне, почему это происходит?
TestProject
|
-src
-com.test.pkg
-MyTestClass.java
-test
+com.test.pkg
1 ответ
Решение
В этом случае исходный каталог не имеет значения вообще. Что важно: имена пакетов одинаковы, поэтому оба класса принадлежат одному пакету - все правильно.