MulticastLockという変数を作成しようとしています。この変数は、Androidフレームワーク内で定義された内部クラスです。Scalaインナークラス - メンバーではありません
ただし、MulticastLockがWifiManagerのメンバーではないことを示すエラーが表示されます。
Scalaで内部クラスを別の方法で参照する必要がありますか?
var multicastLock:android.net.wifi.WifiManager.MulticastLock = null
MulticastLockという変数を作成しようとしています。この変数は、Androidフレームワーク内で定義された内部クラスです。Scalaインナークラス - メンバーではありません
ただし、MulticastLockがWifiManagerのメンバーではないことを示すエラーが表示されます。
Scalaで内部クラスを別の方法で参照する必要がありますか?
var multicastLock:android.net.wifi.WifiManager.MulticastLock = null
WifiManager
がクラスある場合は、#
の代わり.
を使用する必要があります。しかし、これは単なる構文上の違いではないことに注意してください。あなたが外部クラスの内部クラスを持っている場合は、外部クラスのインスタンスがどのようなものかは重要です。#
は、この新しい問題があることを警告します(X#Y
は、特定のコピーではなく、コピーに属している内部クラスの型です)。の場合は、x.Y
が内部クラスの型です。その特定のインスタンス)。内部クラスのさまざまな使用例(例えば、Referring to the type of an inner class in Scala)に対処する他の質問があります。要するに
、はい - あなたは.
の代わりに#
を使用したいと思う:
class A { class B }
val a : A.B = null
//エラー:見つかりません:値が
val a : A#B = null
//は
の作品.
の構文は、外部クラスの特定のインスタンスのメンバーを参照するために使用されます。
val a = new A
val b : a.B = null
詳細な説明とリンクをありがとうございます。 – Steve