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