В C #, если я хочу, чтобы класс был виден какому-либо классу в этой сборке (DLL), я просто обозначаю его как internal
(по умолчанию).
Как я могу сделать это в Java? В Java я заметил, что по умолчанию / внутренняя область видимости уровень пакета , а не уровень JAR. Это это проблема для меня, так как у меня есть библиотека, в которой есть несколько подпакетов с разными обязанностями (view, controller и т. д.), и я не могу поместить их в один пакет.
Например, у меня есть два класса, таких как com.stackoverflow.main.first.One
и com.stackoverflow.main.second.Two
, каждый из которых должен быть способен создавать экземпляры друг друга.
Редактировать: Я не хочу, чтобы класс был public
и был виден всем, кто ссылается на него. Это внутренний класс только . Я создаю API для потребления, и для меня первостепенное значение имеет то, какие классы могут видеть потребители моего JAR.