私はこのコードを手に入れました:
mBoundService = ((LocalService.LocalBinder)service).getService();
いい人がこれが何を意味するのか説明してもらえますか:((LocalService.LocalBinder)service)そして誰かが((A)B)のような他の例を挙げてください。
ありがとうございました。
キャストしているだけです。これはコンパイラに「この式の値はタイプXとしてしか知らないことは知っていますが、実行時にはタイプYになると思います。実行時に確認してから、そのように使用させてください。 。」
例えば:
Object x = getValueFromSomewhere();
String text = (String) x; // I know x is a string reference really
// Use text as a normal string reference
関連するタイプに対するあなたの信念が正しくない場合(たとえば、の値がではなくx
への参照であった場合)、aがスローされます。Integer
String
ClassCastException
詳細については、Java継承チュートリアルを参照してください(または、「Javaキャストチュートリアル」を検索して、類似したものをたくさん見つけてください) 。詳細については、Java言語仕様のセクション15.16を参照してください。
ローカルバインダーは、アクティビティをアプリケーションにのみバインドする必要があることを意味します。サービスは他のアプリケーションにもバインドできることに注意してください。一方、LocalService.LocalBinderを使用すると、サービスを含むアプリケーションをサービスでバインドできます。
このステートメントは、「service」変数がタイプLocalService.LocalBinderにキャストされることを意味します。
その他のサンプル:
double a=1.1f;
int i=(int)a;// you can't write int i=a;