【问题标题】:From Java, how can I access a var defined in a Scala trait?从 Java 中,我如何访问在 Scala 特征中定义的 var?
【发布时间】:2025-12-07 13:35:01
【问题描述】:

我有一个 trait,它定义了一个 var 和一个函数,如下所示:

trait MyTrait {
  var myVar: Boolean

  def myFunction = 7
}

这个特征被一个类(比如 MyClass)使用,我在几个尚未转换的 Java 文件中使用了这个类。如何在我现有的 Java 类中访问该变量?我可以很好地访问该方法。

【问题讨论】:

    标签: java scala interop


    【解决方案1】:

    在最后一次尝试中想通了。如果您初始化myVar,它将按预期工作。

    var myVar: Boolean = _
    

    【讨论】:

    • 虽然这有点不同,不是吗?因为它不再抽象?
    • 真的。我正在将一堆“匆忙”编写的java类转换为scala。一堆共享的通用方法,所以我将它们移动到一个特征中,以便我可以编写它。所有的类都已经继承了一些东西,所以我不能把它放在现有的树中。现在已经足够了。