簡體   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