Как я могу проверить / получить доступ к функциям расширения сопутствующих объектов в Kotlin? - PullRequest
0 голосов
/ 23 января 2019

У меня есть класс Base64Util, помимо прочего, с функцией расширения decodeBase64ToByteArray:

class Base64Util {
  companion object {
    fun String.decodeBase64ToByteArray(): ByteArray {
        return Base64.getUrlDecoder().decode(this)
    }
  }
}

Теперь я хотел бы проверить мой Base64Util с помощью Base64IUtilTest.Конечно, я могу получить доступ к функциям без расширения, но как я могу получить доступ к String.decodeBase64ToByteArray() из Base64UtilTest?

?

1 Ответ

0 голосов
/ 23 января 2019

Вы не можете просто получить доступ к функциям расширения члена , таким как decodeBase64ToByteArray извне.Это возможно только в том случае, если вы попадаете в область действия объекта, в котором он определен:

with(Base64Util.Companion){ //.Companion could be removed
    "123fsad123".decodeBase64ToByteArray()
}

Возможно, имеет смысл определить ваши вспомогательные функции как функции верхнего уровня в файле base64Utils.kt, например.Таким образом, они могут быть вызваны статическим способом без каких-либо проблем.

...