2017-03-18 82 views
-3

我一个书面方式控制专业式,其中涉及自己的小工具系统(...因为我必须 - 我与光栅图形工作,所以我决定不使用标准按钮)。accesing静态类从另一个命名空间的静态成员生成:没有这样的引用错误

我遇到了一个问题,访问一个静态的子类,它是不是在命名空间,我把它从一个静态成员。按照我的想法 - 这个引用应该没有问题,因为静态类和静态方法都有public限定符。

的代码是有点这样的:

//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

具体谈谈你的错误消息。显示不起作用的代码以及错误。并且:阅读关于Java编码指南,你在全面侵犯他们。 – GhostCat

回答

0

你能与阶级的成员更确切。你指定的错误意味着你没有这个名字的成员,或者它是通过某种方式无法接受的。作为您试图访问的成员(以及您的代码中提出的建议)。

有机会的话,编译器了解您试图访问父类的静态成员,这可能是使用相同的名称作为类定义的类的实例。

+0

也许你是对的。我会稍后检查并发布结果。该类有一个名为静态类的私有meber。无论如何,这是棘手的,因为问题已解决(访问静态类),不应该被视为错误。 – techtalker83