[英]Java question about instance variables vs. local variables
抱歉,如果我在這里遺漏了一些明顯的東西,但是我對正在發生的事情感到困惑。 我宣布Workout mWorkout;
作為我類頂部的實例變量。 到現在為止,它尚未初始化。
這段代碼有效: createWorkout
返回一個Workout object
,該Workout object
存儲在局部變量test
,然后從該mWorkout
中設置實例變量mWorkout
。
public void startWorkout() {
Workout test = workoutFactory.createWorkout();
mWorkout = test;
}
而此代碼沒有:
public void startWorkout() {
mWorkout = workoutFactory.createWorkout();
}
即使createWorkout
仍返回Workout
對象, mWorkout
仍為null
。
為了清楚起見,上面的代碼略有簡化。
嘗試與this
mWorkout
合格。
this.mWorkout = workoutFactory.createWorkout();
我的假設是,您定義了一個本地mWorkout
,該mWorkout
用相同的名稱遮蓋了您的實例變量。
我敢打賭,在非工作版本某處startWorkout
你聲明的方法范圍實例mWorkout
被掩蓋實例字段。 如果嘗試了this.mWorkout = ...
您可能會得到不同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.