在Java中,我有一个实现接口的类:
AlertDialog implements DialogInterface
如果在接口内声明了一些变量,我可以访问它们:
AlertDialog.BUTTON_POSITIVE
但在 Scala 中,上述行无法编译。好像是隐藏的。有没有办法在 Scala 中访问这些变量而无需创建新对象或做任何其他 hacky?
稍微详细一点:无法访问这些的原因是 George 正在谈论在接口上定义的静态成员。Scala 没有静态成员 - 相反,创建一个object
,这是一个具有单个实现的常规类。当您从 Java 接口扩展时,Scala 将仅扩展非静态成员,因为静态成员被视为在同伴中object
。伴随对象的名称与接口相同,因此您可以将其访问为DialogInterface.BUTTON_POSITIVE
.
在 Scala 中无法从AlertDialog
类中访问这些变量,但您可以使用接口本身作为对象来访问它们。
所以你可以直接从接口访问变量:
DialogInterface.BUTTON_POSITIVE