我正在编写一个涉及自己的小部件系统的专门控件(...因为我必须 - 我正在使用光栅图形,因此我决定不使用标准按钮)。
我遇到了访问静态子类的静态成员的问题,该静态子类不在我调用它的名称空间中。根据我的想法 - 这个引用应该没有问题,因为静态类和静态方法都有公共限定符。
代码在某种程度上是这样的:
//SpecializedView.java
public class SpecializedView extends View
{
...
button.controler_group[] controler_group;
button button1;
public void init()
{
button_group=button.controler_group.generate_group(8);//generates the error message
button1=new button(controler_group);
}
...
}
//button.java
public class button extends button_specialization
{
...
//EDIT[
controler_group[]controler_group;
//]
public button(controler_group[]controler_group)
{
this.controler_group=controler_group;
...
}
static public class controler_group
{
static public controler_group[] generate_group(int size){...}
...
}
...
}
我有另一个具有相似结构的项目,它运行良好(涉及调用静态子类静态成员),它只涉及与类对象本身的交互(它是一个纯静态函数,作为命名空间) - 图书馆功能)。我认为这种情况可能是数组的生成,但结果与任何类型的返回值都相同。
答案 0 :(得分:0)
您是否可以更精确地了解班级成员。您指定的错误意味着您没有此名称的成员,或者说它通过某种方式无法接受。作为您尝试访问的成员(以及您的代码中提出的建议)。
编译器有可能理解您正在尝试访问父类的静态成员,该成员可能是与类定义同名的类的实例。