繁体   English   中英

Android“getter”返回错误的值

[英]Android "getter" is returning the wrong value

我有 B 类扩展了 A 类,我试图从 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。我的实现有问题吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM