0

我得到了这个代码:

mBoundService = ((LocalService.LocalBinder)service).getService();

一些好人可以解释这是什么意思:((LocalService.LocalBinder)service) 有人可以举一些其他的例子,就像((A)B)。

谢谢你。

4

4 回答 4

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

如果您对所涉及的类型的信念不正确(例如,如果 的值是对 a而不是xa 的引用),则抛出 a 。IntegerStringClassCastException

有关更多信息,请参阅Java 继承教程(或仅搜索“Java 转换教程”以找到许多类似的教程)或参阅Java 语言规范的第 15.16 节了解详细信息。

于 2012-05-18T06:02:17.437 回答
1

你有一个变量(服务)并将其转换为类型(LocalService.LocalBinder)然后你得到服务这意味着:

Service service;
LocalBinder binder = (LocalService.LocalBinder) service;
Service mBoundService = binder.getService();

试试这个可能对你有帮助

参考

例子

于 2012-05-18T06:06:34.953 回答
0

本地绑定器意味着您的活动应该只绑定到您的应用程序。请注意,服务也可以绑定到其他应用程序。而 LocalService.LocalBinder 允许您的服务绑定包含该服务的应用程序。

于 2012-05-18T06:02:22.637 回答
0

此语句意味着“服务”变量转换为类型 LocalService.LocalBinder。

其他样品:

double a=1.1f;
int i=(int)a;// you can't write int i=a;
于 2012-05-18T06:03:36.543 回答