1
私はアプリケーションを持っていて、私の活動の1つでは、派生クラスが使用できるいくつかのヘルパーメソッドを含むベースアクティビティを作成しました。ジェネリックスを使用してアンドロイドビューを読み込もうとしています
私はここに、その怠惰なロードビューメソッドを持っているが、私はそのように呼んで私の派生クラスのコード
protected <T extends View> void loadView(T view, int id) {
if(view == null){
view = (T)findViewById(id);
}
です。
private Button btnAddAlarm
...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer_list);
loadView(btnDeleteAlarm, R.id.btnDeleteAlarm); //the view in the helper method loaded fine
btnDeleteAlarm.setEnabled(false); //Null pointer exception!
問題は、参照が渡されていても、それは関数から出た後btnDeleteAlarmがNULLであることである。
私はしばらくの間でJavaを触れていないが、私はこのshouldn基本を覚えていれば参照を渡すときに起こることはありません。
私が今見ているように、私は引数参照のコピーの私の頭にあったイメージを誤解しました。 – indigo0086