微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

传递StringBuilder :: append作为Kotlin中的参数

如何解决传递StringBuilder :: append作为Kotlin中的参数

我正在使用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) }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。