问题描述
我正在使用BIP39 plugin for Java创建助记符。 因此,我已经将this Java code转换为Kotlin语法(大部分情况下是IDEA所做的),如下所示:
fun mnemonicBuilder(): String {
val sb = StringBuilder()
val entropy = ByteArray(Words.TWELVE.byteLength())
SecureRandom().nextBytes(entropy)
MnemonicGenerator(English.INSTANCE)
.createMnemonic(entropy,sb::append)
return sb.toString()
}
IntelliJ IDEA一直告诉我, sb :: append 的“ 以下任何一个函数都不能用提供的参数调用。 ”
我的疑问是,.createMnemonic requires是拥有no return value (given by Target interface)的第二个参数,但是所有附加程序都将StringBuilder作为值返回。
请,有人可以帮我吗?
解决方法
确实,参数签名不匹配。您可以使用lambda代替方法参考来解决它:
MnemonicGenerator(English.INSTANCE)
.createMnemonic(entropy) { sb.append(it) }