访问变量并获取空值

时间:2013-10-06 14:12:36

标签: java coding-style logic

我正在研究一个有内部类的类。这些类是公共的,我传递给其他类的变量也被公开。我的问题是,每当我尝试访问例如名为public class classx的内部类时,我将需要其变量public int Position。在内部类classx内部有一个计算位置的方法,在另一个内部类public class classy中,我想显示Position的当前值,但每当我尝试访问此位置时从classx我总是得到一个null?这是怎么发生的?

顺便说一下,我知道使用instantiate和使用构造函数。我也尝试过get set但是我总是得到一个重置值。

这是一个示例代码:


public class MainClass
{
          public static class SubClass1
           {
             public int position,x,y;
           }

      public class SubClass2
      {
         private SubClass1 s;

        public void methodCalculate()
        {
          s = new SubClass1();
          s.position = s.x + sy;
        }
      }

      public class SubClass3
      {
         private subClass1 s;

         public void displayMethod()
         {
           system.print(" position: ", s.position);
         }
      }

}

任何请指导我解决这个问题的正确方向。

1 个答案:

答案 0 :(得分:1)

public class SubClass3 {
    private subClass1 s;

    public void displayMethod() {
        system.print(" position: ", s.position);
    }
}

s未在此处的任何位置初始化。所以它的值是null。很明显,当尝试访问其位置字段时,会出现NullPointerException。为了能够使用对象,您需要有一个对象。就像在现实生活中一样:看电视,你需要一台电视:

public class SubClass3 {
    private subClass1 s = new SubClass1();

    public void displayMethod() {
        system.print(" position: ", s.position);
    }
}