1

我一直在查看 Android 开发教程,在查看了一些代码后,我注意到以下内容:

HeadlinesFragment mHeadlinesFragment;
mHeadlinesFragment = (HeadlinesFragment) getSupportFragmentManager().findFragmentById(
            R.id.headlines);

我对 Java 还很陌生,所以这可能是问题所在,但为什么需要对 (HeadlinesFragment) 进行显式转换?mHeadlinesFragment 还不是 HeadlinesFragment 类型吗?

谢谢!

4

1 回答 1

3
getSupportFragmentManager().findFragmentById(
            R.id.headlines); 

这将返回一个 Fragment 对象,并且 HeadlinesFragment 是 Fragment 类的子类,每次将超类的对象分配给子类的引用时,都需要显式转换。

当您将子类对象分配给超类引用时,您不需要显式转换,例如分配:

List<String> list=new ArrayList<String>();
于 2012-08-03T04:33:13.657 回答