我一直在查看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/

10-10 01:05