Android“getter”返回错误的值

我有一个扩展了 A 类的 B 类,我试图从 A 类访问一个变量,但它没有返回正确的值。


(1) A类顶部的变量声明:


private int tripCount;

(2) 我在 A 类的 onCreate 中有一个 ViewModel 观察者,它正在寻找 ROOM 数据库中的变化并相应地设置 tripCount 变量:


    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // we are going to overwrite this

    // setContentView(R.layout.activity_base);


    baseViewModel = ViewModelProviders.of(this).get(TripViewModel.class);

    baseViewModel.getAllTrips().observe(this, new Observer<List<TripEntity>>() {

        @Override

        public void onChanged(@Nullable final List<TripEntity> trips) {

            tripCount = trips.size();

            Log.v("BaseActivity","tripCount: " + tripCount);

        }

    });

}

(3) A类的getter方法:


public int getTripCount() {

    return this.tripCount;

}

(4) B 类正在扩展 A 类并尝试通过以下方式访问 tripCount 变量/值:


tripCount2 = super.getTripCount();

Log.v("TripActivity","tripCount: " + tripCount2);

日志显示 B 类的 tripCount2 为 0,A 类的 tripCount > 0。我的实现有问题吗?


侃侃无极
浏览 160回答 1
1回答

Cats萌萌

我找到了我的问题的答案。我没有使用 getter 和 setter 方法,而是将 tripCount 变量设为“受保护”,以便我可以从子类访问它
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java