为了账号安全,请及时绑定邮箱和手机立即绑定

Android“getter”返回错误的值

Android“getter”返回错误的值

侃侃无极 2021-12-10 16:35:58
我有一个扩展了 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。我的实现有问题吗?
查看完整描述

1 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

我找到了我的问题的答案。

我没有使用 getter 和 setter 方法,而是将 tripCount 变量设为“受保护”,以便我可以从子类访问它


查看完整回答
反对 回复 2021-12-10
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信