Могу ли я добавить класс как расширение к другому классу в Kotlin? - PullRequest
0 голосов
/ 23 мая 2019

Например, я знаю, что могу добавить расширение к классу String следующим образом:

val String.isValidEmail : Boolean
    get() {
        val expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$"
        val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
        val matcher = pattern.matcher(this)
        return matcher.matches()
    }

Теперь я хочу добавить класс в качестве расширения в другой класс, который, я думаю, будет выглядеть следующим образом:

class Networking {
    ....
}

class Networking.Email {
    ....
}

// MainActivity.kt

val email = Networking.Email()

Но это дало мне ошибку для "Networking.Email". Для части «Сеть»: Переобъявление: Сеть . Для части «Электронная почта»: Ожидается объявление верхнего уровня . Возможно ли это в Котлине?

1 Ответ

0 голосов
/ 23 мая 2019

Нет, в Котлине нет таких вещей, как классы расширения. Смотри здесь :

Kotlin, похожий на C # и Gosu, предоставляет возможность расширить класс с новой функциональностью без необходимости наследования от класса или использования любой тип шаблона дизайна, например декоратор. Это делается с помощью специальных объявления называются расширениями. Kotlin поддерживает функции расширения и свойства расширения.

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