Java 我的createFragment方法应该如何返回我的片段?
底部的返回值应该是多少?通过设置null,我可以使我的应用程序正常工作。然而,我想在不抑制它的情况下消除Android Studio中的警告 Android Studio显然在告诉我“'null'由声明为@NonNull的方法返回” 有没有更好的办法归还我的碎片Java 我的createFragment方法应该如何返回我的片段?,java,android,Java,Android,底部的返回值应该是多少?通过设置null,我可以使我的应用程序正常工作。然而,我想在不抑制它的情况下消除Android Studio中的警告 Android Studio显然在告诉我“'null'由声明为@NonNull的方法返回” 有没有更好的办法归还我的碎片 @NonNull @Override public Fragment createFragment(int position) { String className = mContext.getClass().getSimple
@NonNull
@Override
public Fragment createFragment(int position) {
String className = mContext.getClass().getSimpleName();
// Check which Activity is using the ViewHolder and return the appropriate Fragments.
switch (className) {
case "VancouverActivity":
if (position == 0) {
return new VancouverMainFragment();
} else if (position == 1) {
return new VancouverAttractionsFragment();
} else if (position == 2) {
return new VancouverCoffeeFragment();
} else if (position == 3) {
return new VancouverRestaurantFragment();
} else {
return new VancouverActivitiesFragment();
}
case "SaskatoonActivity":
if (position == 0) {
return new SaskatoonMainFragment();
} else if (position == 1) {
return new SaskatoonAttractionsFragment();
} else if (position == 2) {
return new SaskatoonCoffeeFragment();
} else if (position == 3) {
return new SaskatoonRestaurantFragment();
} else {
return new SaskatoonActivitiesFragment();
}
case "TorontoActivity":
if (position == 0) {
return new TorontoMainFragment();
} else if (position == 1) {
return new TorontoAttractionsFragment();
} else if (position == 2) {
return new TorontoCoffeeFragment();
} else if (position == 3) {
return new TorontoRestaurantFragment();
} else {
return new TorontoActivitiesFragment();
}
case "StJohnsActivity":
if (position == 0) {
return new StJohnsMainFragment();
} else if (position == 1) {
return new StJohnsAttractionsFragment();
} else if (position == 2) {
return new StJohnsCoffeeFragment();
} else if (position == 3) {
return new StJohnsRestaurantFragment();
} else {
return new StJohnsActivitiesFragment();
}
}
return null;
}
您需要涵盖所有可能的退货案例,所以这是应该的。只需在使用此返回值的位置添加一个null检查,并将该方法标记为@Nullable。如果您确定已涵盖所有情况,您的方法可以通过抛出
IllegalArgumentException
来结束。