3

(疑似コード) のように、キャストを短縮する関数を作成することは可能ですか?

MyFragment fragment = (MyFragment) getFragmentManager().findFragmentByTag("mytag");
//shorten:
findByTag(MyFragment.class, "mytag");


private Fragment findByTag(Class<?> cast, String tag) {
    return (cast) getFragmentManager().findFragmentByTag(tag);
}
4

1 に答える 1

1

次のようにコードを修正します。

private <F extends Fragment> F findByTag(Class<F> cast, String tag) {
    return (F) getFragmentManager().findFragmentByTag(tag);
}

これで、キャストせずに呼び出すことができます。

MyFragment f1 = findByTag(MyFragment.class, "aaaaa");
YourFragment f2 = findByTag(YourFragment.class, "bbbbb");
于 2012-06-03T12:49:06.170 に答える