Добрый день, переучиваюсь с C# на Java, на C# писал 5 лет, но в мире Java больше денег, а в профессии я исключительно из-за денег. Собственно все более менее приемлемо, но нет модификатора доступа internal. Для меня эта проблема неразрешима в плане архитектуры.
Например: есть приложение с пакетами service, object, contract, helper, util, api, builder, в пакете helper лежат классы которые нужны в любом месте приложения, но не должны быть доступны за пределами главного пакета. К примеру вы определили StringHelper с методами типа IsNullOrWhiteSpace, IsNullOrEmpty и тд, данные методы могут пригодиться и в UI и в сервисах так, что это не проблема архитектуры в целом, а проблема отсутствия в Java модификатора доступа internal.
Возможно я неверно подхожу к принципу пакетов в Java, так как в C# концепция namespace'ов работает совсем иначе и в Java нет папок, а сваливать все в кучу для решения проблемы слишком болезненно для моего сознания. Собственно мне так же мешает, что в Kotlin тоже есть internal. На скрине структура проекта, но разумеется большинство классов public.
Спасибо.
С уважением, Дмитрий