我希望有人可以帮助我,我已经困惑了几个小时,现在无法解决这个问题。看起来真的很容易做。好的,这就是......
我有一个类,A类.A类(私有)实例变量之一是另一个相关类(B类)的对象数组。
在A类的静态方法中,我创建了几个B类对象。我需要将这些对象添加到Class A的实例变量数组中。
我无法使用this
直接访问实例变量,因为我被困在Static类中。
当然,我怎样才能将新创建的B类对象添加到A类的实例变量数组中。
希望这是有道理的,谢谢!
答案 0 :(得分:0)
您需要将要添加B的数组的A实例传递给静态方法。
public static void staticMethodInA(A instanceOfA, ...) {
instanceOfA.arrayOfB[0] = new B();
}
答案 1 :(得分:0)
你快到了。如你所说,数组是类A
的实例变量。这意味着只有在您实际拥有类A
的实例时才能访问它。所以你需要做的是这样的事情:
A a = new A(); // get an A object
System.out.println(a.arrayOfB.length); // access A's array (but see note)
注意:上面的代码只是最简单的方法。但是,您通常不应直接使用a.arrayOfB
访问数组。相反,您应该在A类中定义一个名为getArray()
的方法,该方法将返回该数组。这只是Java标准实践。