我在java(andorid)中有这个代码(类中的类)
public class History extends Activity {
public Integer Type;
private static class HistoryAdapter extends BaseAdapter {
//I don't know how to access variable "Type" here
Integer num = Type;// error
.
.
.
}
.
.
.
}
我无法在“extends BaseAdapter”
之上添加更多类有人可以帮助我,我如何在类HistoryAdapter
中访问变量Type谢谢
答案 0 :(得分:3)
HistoryAdapter
是一个静态类,这意味着它无法访问其父类History
。你要么不要让它不是静态的(如果可能的话),要么你需要让父类通过辅助函数传递Type
的值。
示例:
public class History extends Activity {
public Integer Type;
private static class HistoryAdapter extends BaseAdapter {
Integer num;
HistoryAdapter(Integer num) {
this.num = num;
}
}
void foo() {
HistoryAdapter = new HistoryAdapter(Type);
}
}
或
public class History extends Activity {
public Integer Type;
private class HistoryAdapter extends BaseAdapter {
Integer num = Type;
.
.
.
}
.
.
.
}
答案 1 :(得分:1)
如果您的内部类需要访问包含类的字段,则它必须不是static
...然后它将具有该访问权限。或者,您可以为HistoryAdapter
提供一个带Integer type
的构造函数,并在创建时将History
的类型传递给它。
另外,请不要将Java中字段或变量的第一个字母大写。