7

在Java中,我有一个实现接口的类:

AlertDialog implements DialogInterface

如果在接口内声明了一些变量,我可以访问它们:

AlertDialog.BUTTON_POSITIVE

但在 Scala 中,上述行无法编译。好像是隐藏的。有没有办法在 Scala 中访问这些变量而无需创建新对象或做任何其他 hacky?

4

2 回答 2

14

稍微详细一点:无法访问这些的原因是 George 正在谈论在接口上定义的静态成员。Scala 没有静态成员 - 相反,创建一个object,这是一个具有单个实现的常规类。当您从 Java 接口扩展时,Scala 将仅扩展非静态成员,因为静态成员被视为在同伴中object。伴随对象的名称与接口相同,因此您可以将其访问为DialogInterface.BUTTON_POSITIVE.

于 2012-11-12T15:28:46.977 回答
2

在 Scala 中无法从AlertDialog类中访问这些变量,但您可以使用接口本身作为对象来访问它们。

所以你可以直接从接口访问变量:

DialogInterface.BUTTON_POSITIVE
于 2012-11-12T15:09:13.207 回答