0

我在访问在其类中定义非静态的数组时遇到问题。

这个数组的元素完全由另一个类添加(称之为“添加”),所以我也无法访问这个类。在我的班级中,我需要从“A”类(具有数组)中获取数组,该数组是从“add”填充的。因为它不是静态的,所以当我创建这个“A”类的新属性时是创建新对象,所以忘记填充一个。

我的问题; 有没有办法让这个非静态数组不丢失它的元素?

4

2 回答 2

1

从您的描述中很难看出,但也许您只需要向包含您想要的数组的类添加一个“getter”方法,然后在包含您想要访问数组的类中的数组的对象上调用该方法.

IE

public 'ArrayType' getArray() {
    return array;
}

用数组的类型替换“ArrayType”,用数组的名称替换“array”。

这将为您提供对数组的引用,以便您可以对其中的内容执行操作。

如果您还没有意识到,当您需要从另一个类访问对象的实例变量时,这是相当标准的做法。

于 2012-03-31T08:38:45.807 回答
0

因为它不是静态的,所以当我创建这个“A”类的新属性时是创建新对象,所以忘记填充一个。

嗯,是的 - 您需要将值添加到的实例。我们无法告诉您如何做到这一点,因为我们对您的代码知之甚少(毕竟,您还没有展示任何代码)。它是一个数组的事实是无关紧要的 - 实例变量的全部意义在于每个实例都有自己的一组变量,以表示该对象的状态。如果您需要特定对象的状态,则需要对该对象的引用。

顺便说一句,您通常不应该直接访问不同类的变量 - 变量应该是私有的,并在适当的地方具有访问数据的属性。(这也不意味着每个变量都有一个属性。通常您根本不想直接公开值 - 相反,您公开了作用于整个对象的方法。如果不知道什么很难更具体你的对象是用来代表的。)

于 2012-03-31T08:01:47.213 回答