#java #android #android-studio #arraylist #add
#Ява #Android #android-студия #список объектов #Добавить
Вопрос:
Я новичок в этом, так что приношу извинения за любые ошибки.
Контекст: в рамках обучения объекту я пытаюсь добавить список упражнений с объектами. Однако. Каждый раз, когда я пытаюсь добавить упражнение с объектом в список упражнений, приложение выходит из строя. Любая помощь приветствуется.
Объекты Тренировки и упражнения выглядят так
public class Training { public Integer trainingNumber; public Date datum; public Integer nrOfExercises; public ArrayListlt;Exercisegt; exercises; } public class Training { public Integer trainingNumber; public Date datum; public Integer nrOfExercises; public ArrayListlt;Exercisegt; exercises; }
Код, пытающийся сгенерировать все это, выглядит следующим образом:
private Training createRandomTraining(int i){ Training randomTraining = new Training(); Random random = new Random(); int d = random.nextInt(30) 1; int m = random.nextInt(12) 1; //int y = random.nextInt(21) 2000; int amountOfExercises = random.nextInt(9-6) 6; randomTraining.trainingNumber = i; randomTraining.datum = new Date(2021,m,d); for (int j = 0; j lt; amountOfExercises ; j ){ Exercise exercise = new Exercise(); Random r = new Random(); int set = r.nextInt(5) 1; int nameInt = r.nextInt(3); int rep = r.nextInt(12) 1; //int y = random.nextInt(21) 2000; exercise.trainingNumber = i; exercise.exerciseNumber = j 1; exercise.exerciseName = getExerciseName(nameInt); exercise.sets = set; exercise.reps = rep; exercise.weight = random.nextInt(200-50) 50; randomTraining.exercises.add(exercise); //the app crashes here. //The other parts work fine. } randomTraining.nrOfExercises = amountOfExercises; return randomTraining; }
Комментарии:
1. Пожалуйста, не могли бы вы поделиться журналом ошибок?
2. Я предполагаю, что это
NullPointerException
А. Ваше определение классаTraining
не инициализируетсяListlt;Exercisegt; exercises = new ArrayListlt;gt;()
, поэтому вы не можете#add
в этой строке кода.3. Это сработало!! Добавление спискаlt;Упражнениеgt; упражнения = новый ArrayListlt;Упражнениеgt;lt;gt;() до того, как цикл for исправил это. Огромное спасибо!