-1

我希望有人可以帮助我解决这个问题,我已经为此困惑了几个小时,无法弄清楚。似乎是一件很容易做到的事情。好的,这就去...

我有一个类,A 类。A 类的(私有)实例变量之一是另一个相关类(B 类)的对象数组。

在 AI 类的静态方法中创建了 B 类的多个对象。我需要将这些对象添加到 A 类的实例变量数组中。

this由于我被困在静态类中,因此无法直接访问实例变量。

如何将新创建的 B 类对象添加到 A 类的实例变量数组中,当然是正式意义上的。

希望这是有道理的,谢谢!

4

2 回答 2

0

您需要将 A 的实例(您想将 B 添加到其数组中)传递给静态方法。

public static void staticMethodInA(A instanceOfA, ...) {

    instanceOfA.arrayOfB[0] = new B();

}
于 2013-05-08T17:35:50.303 回答
0

你快到了。正如您所说,数组是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 标准实践。

于 2013-05-08T17:36:42.490 回答