Пробую писать программу на Java и столкнулся со следующей проблемой: у меня есть массив данных, который я генерирую в классе1, его нужно передать в класс2, изменить данные в нем и вернуть в класс1, чтобы при следующем обращении к нему данные уже были изменены. У меня выходит только передача в класс2, но измененный массив не могу передать обратно. Как это можно реализовать?
Думаю, прежде всего стоит понять, что ты работаешь не с классами, а с их экземплярами. И ты не переходишь между классами... а можешь из объекта одного класса вызвать метод объекта другого...
ClassOne() {
private var;
public void method(){
var = new ClassTwo().somemethod(array[]);
}
}
Соответственно,после отработки кода данные находятся не в классе ClassOne, а только в его отдельном экземпляре... И, если, на этот экземпляр больше нет никаких ссылок, то все отработанные данные будут попросту уничтожены сборщиком мусора.
Данные хранит не класс, а объект и у объекта есть время жизни. Чтобы сохранить данные на длительное время, можно отправить их в базу данных или записать в фаил...
У вас очень общий вопрос, поэтому приведу псевдокод, от которого вы сможете оттолкнуться и написать свой код, причём необязательно так же. Если я правильно вас понял, ваш массив не изменяется (не меняется его размер или тип содержимого, то есть его не надо создавать заново), а меняются лишь сами данные в нём.
public class ClassOne {
private Data[] data;
private ClassTwo processor; // инициализируйте сетером, конструктором ClassOne или прямо тут
// какие-то другие поля и методы этого класса
public void work() {
if (data == null) {
this.data = generateData();
}
// какой-то другой необязательный код
}
private Data[] generateData() {
Data[] data = ... // дальше код генерации начальных данных
processor.processData(data);
return data
}
}
public class ClassTwo {
// какие-то поля и методы этого класса
public void processData(Data[] data) {
// код обработки данных
}
}
Затем просто вызывайте метод work()
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать, чтобы все дочерние элементы block были бы в одну строку, а если они не помещаются по ширине, то переносились бы на следующую, но не каким-то...
Помогите пожалуйста с порядком выполненияНе могу понять, как сделать порядок выполнения
Итак, я пытаюсь написать программу, запускающую N Promise с потоком в k Promise параллельноПроблема в том, что при запуске без yield sleep 1 программа запускает...