我不得不在這裏使用instanceof
幾次,同時檢查什麼子類Fragment
是,我覺得我走錯了地方:如何避免在這種情況下使用instanceof?
@Override
public void onBackPressed() {
Fragment frag = mManager.findFragmentByTag("Fragment");
if(frag instanceof CustFragmentOne ||
frag instanceof CustFragmentTwo ||
frag instanceof CustFragmentThree ||
frag instanceof CustFragmentFour) {
//This method displays an instance of "CustFragmentFive"
displayView(0);
}
else if(frag instanceof CustFragmentFive)
super.onBackPressed();
else if(mManager.getBackStackEntryCount() > 0)
getFragmentManager().popBackStack();
else
super.onBackPressed();
}
有沒有在這裏使用它什麼辦法?我還能如何識別片段的類型,並據此調用正確的方法?
繞過了'instanceof'運營商需要的是'遊客pattern' – EpicPandaForce
的典型方式在我看來就像'CustFragmentOne',' CustFragmentTwo','CustFragmentThree'和'CustFragmentFour'都應該擴展一個接口,該接口有一些方法來確定對象是否需要顯示值。 –