我如何 test/access Kotlin 中的伴随对象扩展函数?
How can I test/access companion object extension functions in Kotlin?
我有一个 Base64Util class,其中有一个扩展函数 decodeBase64ToByteArray
:
class Base64Util {
companion object {
fun String.decodeBase64ToByteArray(): ByteArray {
return Base64.getUrlDecoder().decode(this)
}
}
}
现在我想通过 Base64IUtilTest
测试我的 Base64Util
。我当然可以访问非扩展功能,但是我如何 access/test 来自 Base64UtilTest
的 String.decodeBase64ToByteArray()
?
您不能简单地从外部访问成员扩展函数,例如decodeBase64ToByteArray
。这只有在您进入其定义的对象范围时才有可能:
with(Base64Util.Companion){ //.Companion could be removed
"123fsad123".decodeBase64ToByteArray()
}
例如,将 util 函数定义为文件中的顶级函数可能很有意义 base64Utils.kt
。这样,就可以毫无问题地以静态方式调用它们。
我有一个 Base64Util class,其中有一个扩展函数 decodeBase64ToByteArray
:
class Base64Util {
companion object {
fun String.decodeBase64ToByteArray(): ByteArray {
return Base64.getUrlDecoder().decode(this)
}
}
}
现在我想通过 Base64IUtilTest
测试我的 Base64Util
。我当然可以访问非扩展功能,但是我如何 access/test 来自 Base64UtilTest
的 String.decodeBase64ToByteArray()
?
您不能简单地从外部访问成员扩展函数,例如decodeBase64ToByteArray
。这只有在您进入其定义的对象范围时才有可能:
with(Base64Util.Companion){ //.Companion could be removed
"123fsad123".decodeBase64ToByteArray()
}
例如,将 util 函数定义为文件中的顶级函数可能很有意义 base64Utils.kt
。这样,就可以毫无问题地以静态方式调用它们。