Java には、インターフェイスを実装するクラスがあります。
AlertDialog implements DialogInterface
いくつかの変数がインターフェイス内で宣言されている場合、それらにアクセスできます。
AlertDialog.BUTTON_POSITIVE
しかし、Scala では上記の行はコンパイルされません。隠されているようです。新しいオブジェクトを作成したり、ハックしたりせずに Scala でこれらの変数にアクセスする方法はありますか?
もう少し詳しく説明すると、これらにアクセスできない理由は、ジョージがインターフェイスで定義された静的メンバーについて話しているためです。Scala には静的メンバーがありません。代わりにobject
、単一の実装を持つ通常のクラスである を作成します。Java インターフェイスから拡張する場合、Scala は非静的メンバーのみを拡張します。これは、静的メンバーがコンパニオン内にあるものとして扱われるためobject
です。コンパニオン オブジェクトはインターフェイスと同じ名前が付けられているため、 としてアクセスできますDialogInterface.BUTTON_POSITIVE
。
クラスからこれらの変数にアクセスする方法は Scala にはありませんAlertDialog
が、インターフェイス自体をオブジェクトとして使用してそれらにアクセスすることはできます。
したがって、インターフェイスから変数に直接アクセスできます。
DialogInterface.BUTTON_POSITIVE