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 回答