我希望有人可以帮助我解决这个问题,我已经为此困惑了几个小时,无法弄清楚。似乎是一件很容易做到的事情。好的,这就去...
我有一个类,A 类。A 类的(私有)实例变量之一是另一个相关类(B 类)的对象数组。
在 AI 类的静态方法中创建了 B 类的多个对象。我需要将这些对象添加到 A 类的实例变量数组中。
this
由于我被困在静态类中,因此无法直接访问实例变量。
如何将新创建的 B 类对象添加到 A 类的实例变量数组中,当然是正式意义上的。
希望这是有道理的,谢谢!
您需要将 A 的实例(您想将 B 添加到其数组中)传递给静态方法。
public static void staticMethodInA(A instanceOfA, ...) {
instanceOfA.arrayOfB[0] = new B();
}
你快到了。正如您所说,数组是class的实例变量A
。这意味着只有当您实际拥有class实例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 标准实践。