我一直在查看Android开发教程,并且在浏览了一些代码之后,发现了以下内容:
HeadlinesFragment mHeadlinesFragment;
mHeadlinesFragment = (HeadlinesFragment) getSupportFragmentManager().findFragmentById(
R.id.headlines);
我对Java还是很陌生,所以可能是问题所在,但是为什么必须显式转换(HeadlinesFragment)? mHeadlinesFragment是否不是HeadlinesFragment类型的?
谢谢!
最佳答案
getSupportFragmentManager().findFragmentById(
R.id.headlines);
这将返回一个Fragment对象,并且HeadlinesFragment是Fragment类的子类,并且每次将超类的对象分配给子类的引用时,都需要显式转换。
在将子类对象分配给超类引用时,您不需要显式转换,例如分配:
List<String> list=new ArrayList<String>();
关于java - 为什么需要显式强制转换?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11789283/