#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()
), чтобы в вашей консоли вы увидели ошибку. Он выдаст вам тип ошибки, строку, ее вызывающую, и иногда дополнительную информацию.