我有一些我想要推廣的代碼。泛型的實現方法
我有一個泛型類
public class SynthesisFragmentAdapter<A extends Fragment & IBaseFragment, B extends Fragment & IBaseFragment> extends FragmentPagerAdapter {
private Context context;
private Class<A> synthesisFragmentClass1;
private Class<B> synthesisFragmentClass2;
public SynthesisFragmentAdapter(FragmentManager fm, Context context,
Class<A> synthesisFragmentClass1,
Class<B> synthesisFragmentClass2) {
super(fm);
this.context = context;
this.synthesisFragmentClass1 = synthesisFragmentClass1;
this.synthesisFragmentClass2= synthesisFragmentClass2;
}
}
我想調用這個類的時候,我需要動態地添加一個片段到SynthesisFragmentAdapter
實例。我想這
// dynamically add same kind of fragment to adapter
protected void init(Class a, Class b , Fragment f1 , Fragment f2) {
TabLayout tab = (TabLayout) findViewById(R.id.tab);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
SynthesisFragmentAdapter<f1 , f2> fragmentAdapter = new SynthesisFragmentAdapter<f1, f2>(getSupportFragmentManager(), this , a , b);
pager.setAdapter(fragmentAdapter);
tab.setupWithViewPager(pager);
}
但我不認爲這是正確的,因爲我使用的片段實現除接口(IBaseFragment
)延長Fragment
。 我在做什麼錯?
你有沒有編譯錯誤或運行時異常?程序是否按照你的意願去做? –
@Erick G. Hagstrom。謝謝您的回覆 。事實上,我在SynthesisFragmentAdapter的實例化下遇到了一個編譯錯誤:「未知類f1,未知類f2」)。我想我錯過了一些東西,但我不知道爲什麼。 – ulquiorra