Как internal функция будет выглядеть в Java

«Как internal функция будет выглядеть в Java» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java нет ключевого слова internal как в Kotlin. Вместо этого используется модификатор доступа по умолчанию (package-private), когда не указан ни public, ни protected, ни private. Такие функции/классы видны только внутри своего пакета.

// Доступно только внутри пакета com.example
class MyClass {
    void myInternalMethod() {
        // ...
    }
}

Для достижения аналога Kotlin's internal в мультимодульных проектах можно:

  1. Использовать package-private доступ
  2. Размещать internal-классы в отдельном модуле и скрывать их за публичным API
  3. Использовать аннотации типа @RestrictTo из AndroidX