我收到了这段代码:
mBoundService = ((LocalService.LocalBinder)service).getService();
一些好人可以解释这是什么意思:((LocalService.LocalBinder)服务) 有人可以像((A)B)那样给出一些其他的例子。
谢谢。
答案 0 :(得分:4)
这只是投射。它告诉编译器,“我知道你只知道这个表达式的值为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
的值是Integer
而不是String
的引用)那么ClassCastException
是抛出。
有关详细信息,请参阅Java Inheritance Tutorial(或者只是搜索“Java强化教程”以查找许多类似的教程)或查看section 15.16 of the Java Language Specification了解详细信息。
答案 1 :(得分:1)
你有一个变量(服务)并将它转换为type(LocalService.LocalBinder)然后你得到了服务 这意味着:
Service service;
LocalBinder binder = (LocalService.LocalBinder) service;
Service mBoundService = binder.getService();
试试这可能会对你有所帮助
答案 2 :(得分:0)
本地活页夹意味着您的活动应仅绑定到您的应用程序。请注意,服务也可以绑定到其他应用程序。而LocalService.LocalBinder允许您的服务绑定包含该服务的应用程序。
答案 3 :(得分:0)
此语句表示“service”变量强制转换为LocalService.LocalBinder。
其他样本:
double a=1.1f;
int i=(int)a;// you can't write int i=a;