получить доступ к нестатической переменной из другого класса - PullRequest
0 голосов
/ 31 марта 2012

У меня проблема с доступом к массиву, который определяет нестатический класс.

Элементы этого массива добавлены совершенно другим классом (назовите его «add»), поэтому я тоже не могу добраться до этого класса. В моем классе мне нужно получить массив из класса «A» (который имеет массив), который заполнен из «add». Из-за того, что он не статичен, когда я создаю новый атрибут этого класса "A", создайте новый объект, поэтому забудьте о заполнении.

Мой вопрос; Есть ли способ получить этот нестатический массив без потери его элементов?

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Трудно сказать из вашего описания, но, возможно, вам просто нужно добавить метод 'getter' в класс, содержащий нужный вам массив, и вызвать этот метод для объекта, содержащего массив из класса, к которому вы хотите получить доступ массив из.

т.е.

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

Замена 'ArrayType' типом вашего массива и 'array' на имя вашего массива.

Это даст вам ссылку на массив, чтобы вы могли затем выполнять действия над тем, что внутри него.

Если вы еще не знали, это довольно стандартная практика, когда вам нужен доступ к переменной экземпляра объекта из другого класса.

0 голосов
/ 31 марта 2012

Из-за того, что он не статичен, когда я создаю новый атрибут этого класса "A", создайте новый объект, поэтому забудьте о заполнении.

Хорошо, да - вам нужен экземпляр, к которому были добавлены значения. Мы не можем сказать вам, как это сделать, поскольку мы недостаточно знаем о вашем коде (в конце концов, вы ничего не показали). Тот факт, что это массив, не имеет значения - суть переменных экземпляра в том, что каждый экземпляр имеет свой собственный набор переменных для представления состояния этого объекта. Если вам нужно состояние определенного объекта, вам понадобится ссылка на этот объект.

Кроме того, как правило, вы не должны обращаться к переменным другого класса напрямую - переменные должны быть приватными, со свойствами для доступа к данным, где это уместно. (То, что не также означает одно свойство для переменной. Часто вы вообще не хотите напрямую выставлять значение - вместо этого вы предоставляете методы, которые воздействуют на объект в целом. Трудно будьте более конкретны, не зная, что ваш объект должен представлять.)

...