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

#java #arrays #object #attributes #java.lang

#массивы #объект #атрибуты #java

Вопрос:

Каков правильный способ объявления экземпляра объекта, который является частью массива, который является атрибутом другого объекта? У меня есть класс под названием ingrediente, который довольно прост. Это выглядит следующим образом:

 public class ingrediente{
public int cantidad;
public String nombre;
public int fechaDeCaducidad;}
  

У меня есть другой класс под названием receta, который содержит массив объектов ingrediente:

 public class receta{
ingrediente [] ingredientes;
String preparacion;
String nombreReceta;}
  

Я хочу присвоить значения атрибутам объекта ingredient, который является частью массива ingredientes в экземпляре класса receta. Я даже не уверен, должен ли я объявлять объект ingrediente перед присвоением ему значений, но код не работает (хотя он не показывает синтаксических ошибок), делаю я это или нет. Код выглядит следующим образом:

 recetas [CONTADORRECETAS].ingredientes [CONTADORINGREDIENTES2] = new ingrediente ();
recetas [CONTADORRECETAS].ingredientes [CONTADORINGREDIENTES2].nombre = TEMP2;
  

Кто-нибудь может сказать мне, что я делаю не так? Код находится внутри try и выдает java.lang.Исключение NullPointerException в этих строках (в первой, если я ее включу, и во второй, если я этого не сделаю). Значение атрибута не присваивается. Переменная TEMP2 объявлена ранее и имеет правильный тип.

Комментарии:

1. Что заставляет вас думать , что вы делаете что — то не так ?

2. Значение не получает asigned. Кроме того, код находится внутри try, и он переходит к catch в этих строках.

3. Что является генерируемым исключением? (Я уже знаю ответ: исключение IndexOutOfBoundException. Но это для того, чтобы вы увидели, что, во-первых, вы не предоставляете достаточно информации, чтобы люди могли помочь в вашей собственной проблеме, во-вторых, проведите некоторое исследование, прежде чем спрашивать, решение, если часто в сообщении об ошибке)

4. Извините, я пытаюсь объяснить это как можно яснее, но все эти концепции для меня новы. Я не знаю, как проверить, какое из них является выданным исключением.

5. В вашем предложении catch вы должны напечатать stackTrace исключения ( e.printStackTrace() ), чтобы в вашей консоли вы увидели ошибку. Он выдаст вам тип ошибки, строку, ее вызывающую, и иногда дополнительную информацию.