[英]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.