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)
?
谢谢.
您可以.这两个陈述完全相同.
如果您在结果上调用方法,那么您会看到不同之处,例如
(ExApp) getApplication().foo();
Run Code Online (Sandbox Code Playgroud)
不同于:
((ExApp) getApplication()).foo();
Run Code Online (Sandbox Code Playgroud)
在第一种情况下,它的结果foo()是投射到ExApp; 在第二个中,它是结果ExApp,而整体表达式是返回类型foo().