Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的createFragment方法应该如何返回我的片段?_Java_Android - Fatal编程技术网

Java 我的createFragment方法应该如何返回我的片段?

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

底部的返回值应该是多少?通过设置null,我可以使我的应用程序正常工作。然而,我想在不抑制它的情况下消除Android Studio中的警告

Android Studio显然在告诉我“'null'由声明为@NonNull的方法返回”

有没有更好的办法归还我的碎片

@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
来结束。