【问题标题】:accesing static class static member from another namespace generates: no such reference error从另一个命名空间访问静态类静态成员会生成:没有此类引用错误
【发布时间】:2017-08-09 22:15:32
【问题描述】:

我正在编写一个涉及自己的小部件系统的专业控件(...因为我必须 - 我正在使用光栅图形,所以我决定不使用标准按钮)。

我在访问不在我调用它的名称空间中的静态子类的静态成员时遇到问题。根据我的想法 - 这个引用应该没有问题,因为静态类和静态方法都有公共限定符。

代码是这样的:

//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){...}
    ...
  }
  ...
}

我有另一个具有类似结构的项目,它运行良好(涉及调用静态子类静态成员),它只不涉及与类对象本身的交互(它是一个纯静态函数,用作命名空间-图书馆功能)。我认为情况可能是数组的生成,但结果与任何类型的返回值相同。

【问题讨论】:

  • 更具体地了解您收到的错误消息。显示不起作用的代码;连同错误。并且:阅读有关 java 编码指南的信息,您到处都在违反它们。

标签: java android class static


【解决方案1】:

您能否更准确地了解班级成员。您指定的错误意味着您没有此名称的成员,或者它在某种程度上无法访问。作为您尝试访问的成员(以及您的代码中提出的建议)。

编译器可能会理解您正在尝试访问父类的静态成员,这可能是与类定义同名的类的实例。

【讨论】:

  • 也许你是对的。我稍后会检查并发布结果。该类有一个私有成员,其名称类似于静态类。无论如何这很棘手,因为问题已经解决(访问静态类),不应该被威胁为错误。
猜你喜欢
  • 2018-10-05
  • 2012-05-27
  • 2012-08-23
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
相关资源
最近更新 更多