7

Java には、インターフェイスを実装するクラスがあります。

AlertDialog implements DialogInterface

いくつかの変数がインターフェイス内で宣言されている場合、それらにアクセスできます。

AlertDialog.BUTTON_POSITIVE

しかし、Scala では上記の行はコンパイルされません。隠されているようです。新しいオブジェクトを作成したり、ハックしたりせずに Scala でこれらの変数にアクセスする方法はありますか?

4

2 に答える 2

14

もう少し詳しく説明すると、これらにアクセスできない理由は、ジョージがインターフェイスで定義された静的メンバーについて話しているためです。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 に答える