Android Java类转换

0 java android casting downcast

我想知道是否有人可以为我解释关于一个类演员的事情.

我正在玩Android,我有一个名为ExApp的Application子类.

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

ExApp ex = ((ExApp)getapplication());
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我需要一套双括号?为什么我不能:

ExApp ex = (ExApp)getApplication();  
Run Code Online (Sandbox Code Playgroud)

谢谢.

Jon*_*eet 7

您可以.这两个陈述完全相同.

如果您在结果上调用方法,那么您会看到不同之处,例如

(ExApp) getApplication().foo();
Run Code Online (Sandbox Code Playgroud)

不同于:

((ExApp) getApplication()).foo();
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,它的结果foo()是投射到ExApp; 在第二个中,它是结果ExApp,而整体表达式是返回类型foo().