【问题标题】:Handling private fields in Scala traits when implementing them in Java在 Java 中实现 Scala 特征时处理私有字段
【发布时间】:2011-06-09 04:47:43
【问题描述】:

在实现 Scala 特征时,必须实现特征的方法并简单地调用 Foo$class.class 上的相应静态方法。但是我不确定如何处理 trait 中定义的私有字段。

也就是说,如果特征中有一个字段_something,如果我不实现_something_$eq()_something(),编译器就会对我大喊大叫。我的假设是我必须在我的实现类中创建一个_something 字段。

我只是想确认这是处理此问题的正确方法。

【问题讨论】:

    标签: java scala interop traits


    【解决方案1】:

    是的,在类中创建私有字段

    注意你还需要调用Foo$class模块的init方法

    如果您想确切了解需要做什么,只需创建一个扩展 Foo 的 Scala 类,编译它,然后使用反编译器 (jd-gui) 查看它是如何生成的。

    【讨论】:

    • 谢谢。并感谢您扩展课堂技巧。我最初确实在 jd-gui 中查看了 scala 代码,但没有使用自定义类。
    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-08
    相关资源
    最近更新 更多