【问题标题】:Why is a "Fragment fragment = null" and what is meaning of this definition of fragment?为什么是“Fragment fragment = null”,这个片段定义的含义是什么?
【发布时间】:2018-08-03 21:48:31
【问题描述】:

这是 FragmentPagerAdapter 的 getItem 方法的一段代码:

 @Override
    public Fragment getItem(int position) {
        Fragment fragment = null;
        switch (position){
            case 0:
                fragment = new FragmentLight();
                break;
            case 1:
                fragment = new FragmentDark();
                break;
        }
        return fragment;
    } 

问题:

  • 为什么fragment声明为“Fragment fragment = null;”,null是什么意思?
  • 为什么我不能在这里放“Fragment fragment;”有什么区别 这两个例子?

【问题讨论】:

  • 您应该将变量初始化为某个值,或者您应该在开关中声明“DEFAULT”情况,否则由于“未初始化的变量”,编译器将不允许您编译该方法。这是因为该方法应该返回一个值。

标签: android android-fragments fragmentpageradapter


【解决方案1】:

在第一种情况下,你给对象一个初始值,那就是空值。在第二种情况下,您将使对象未初始化。

重要的部分是下面的代码:如果您可以保证在代码可能采用的任何分支中,对象将被初始化,那么您可以在开始时让它未初始化。否则,如果无法保证,编译器会报错(假设您稍后将使用该对象,否则您将收到未使用变量的警告)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    相关资源
    最近更新 更多