Java类变量范围问题

时间:2010-10-28 00:49:59

标签: java

我在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

谢谢

2 个答案:

答案 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中字段或变量的第一个字母大写。