Я хочу сгенерировать некоторые тестовые данные, используя этот код Java:
@GetMapping("/volumes")
public ResponseEntity<List<DashboardDTO>> getProcessingVolumes() {
return ResponseEntity.ok(testDate());
}
public List<DashboardDTO> testDate() {
List<DashboardDTO> list = null;
for (int i = 0; i <= 10; i++) {
list = new ArrayList<>();
DashboardDTO obj = new DashboardDTO();
obj.setAmount(ThreadLocalRandom.current().nextInt(20, 500 + 1));
LocalDate localDate = LocalDate.now().minus(Period.ofDays((new Random().nextInt(365 * 70))));
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
obj.setDate(date);
obj.setNumber_of_transactions(ThreadLocalRandom.current().nextInt(300, 5000 + 1));
list.add(obj);
}
return list;
}
Но при запуске кода генерируется только один объект. Вы знаете, где я ошибаюсь? Я хочу создать 10 тестовых объектов.




Здесь:
for (int i = 0; i <= 10; i++) {
list = new ArrayList<>();
Вы создаете список результатов новый во время каждого цикла. Таким образом, последний цикл создает еще один список для последней записи!
Просто переместите эту строку list = new ArrayList<>();спереди цикла, чтобы она выполнялась только один раз.
Ваш код создает 11 новых списков, каждый с одной записью, и вы возвращаете этот последний объект списка. Вместо этого: создайте один список и добавьте свои 11 элементов, а затем верните этот единственный список.
for (int i = 0; i <= 10; i++) {
list = new ArrayList<>(); //(Fix here)--> resetting your list everytime causing only single object to return.
Попробуйте инициализировать только один раз.
List<DashboardDTO> list = new ArrayList<>();
for (int i = 0; i <= 10; i++) {
DashboardDTO obj = new DashboardDTO();
obj.setAmount(ThreadLocalRandom.current().nextInt(20, 500 + 1));
LocalDate localDate = LocalDate.now().minus(Period.ofDays((new Random().nextInt(365 * 70))));
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
obj.setDate(date);
obj.setNumber_of_transactions(ThreadLocalRandom.current().nextInt(300, 5000 + 1));
list.add(obj);
}
return list;
Я ценю быстрое принятие!