1

私はAndroid開発チュートリアルを見ていて、いくつかのコードを調べた後、次のことに気づきました。

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

私はJavaにかなり慣れていないので、それが問題になる可能性がありますが、なぜこの(HeadlinesFragment)の明示的なキャストが必要なのですか?mHeadlinesFragmentはまだHeadlinesFragmentタイプではありませんか?

ありがとう!

4

1 に答える 1

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

これはFragmentObjectを返し、HeadlinesFragmentはFragmentクラスのサブクラスであり、スーパークラスのオブジェクトをサブクラスの参照に割り当てるたびに、明示的にキャストする必要があります。

次の割り当てのように、サブクラスオブジェクトをスーパークラス参照に割り当てる場合は、明示的なキャストは必要ありません。

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