我如何 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 来自 Base64UtilTestString.decodeBase64ToByteArray()

您不能简单地从外部访问成员扩展函数,例如decodeBase64ToByteArray。这只有在您进入其定义的对象范围时才有可能:

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

例如,将 util 函数定义为文件中的顶级函数可能很有意义 base64Utils.kt。这样,就可以毫无问题地以静态方式调用它们。