Android Java 类转换

发布于 2024-11-11 03:55:25 字数 302 浏览 3 评论 0原文

我想知道是否有人可以为我解释一些关于班级演员的事情。

我正在使用 Android,我有一个名为 ExApp 的应用程序子类。

我想从我的一个活动中调用 ExApp 的方法,所以我这样做:

ExApp ex = ((ExApp)getapplication());

我不明白的是为什么我需要一对括号?为什么我不能只是:

ExApp ex = (ExApp)getApplication();  

谢谢。

I am wondering if someone could explain something about a class cast for me.

I am playing around with Android and I have a subclass of Application named ExApp.

I want to call a method of ExApp from one of my activities, so I do:

ExApp ex = ((ExApp)getapplication());

What I don't understand is why I need a double set of parentheses? Why can't I just:

ExApp ex = (ExApp)getApplication();  

?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥抱影子 2024-11-18 03:55:25

你可以。这两种说法完全一样。

您会看到不同之处在于,如果您对结果调用方法,例如

(ExApp) getApplication().foo();

不同于:

((ExApp) getApplication()).foo();

在第一种情况下,它是 foo() 的结果,该结果被转换为 ExApp;第二个是ExApp的结果,整体表达式是foo()的返回类型。

You can. The two statements are exactly the same.

Where you'd see a difference is if you were calling a method on the result, e.g.

(ExApp) getApplication().foo();

is different to:

((ExApp) getApplication()).foo();

In the first case, it's the result of foo() which is cast to ExApp; in the second, it's the result of ExApp, and the overall expression is the return type of foo().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文