【问题标题】:Kotlin/Java mutable method parametersKotlin/Java 可变方法参数
【发布时间】:2023-02-15 20:42:08
【问题描述】:

在 Java 中,定义了一个不可变的方法参数,如下所示:

void foo(final String text) {
    text = "Hello"; // Error, text is final.
}

在 Kotlin 中,您可以免费获得这种行为:

fun foo(text: String) {
    text = "Hello" // Val cannot be reassigned
}

鉴于这是默认行为,你怎么得到可变的Kotlin 中的方法参数?

【问题讨论】:

  • 预期的结果是什么?
  • stackoverflow.com/q/40563406/506796 的可能重复项 他们多年前就取消了对可变参数的支持。您必须将其复制到 var 变量中才能获得类似的行为。

标签: java kotlin


【解决方案1】:

您可以使用 apache-commons (documentation) 的 MutableObject。通过这种方式,您可以更改参数。

同样可以在需要修改某些变量的 lambda 函数中使用。

或者,如果您觉得不舒服,可以编写自己的可变包装器。

免责声明:我主要从事 Java 工作,但我认为这可以用于 Kotlin。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    相关资源
    最近更新 更多