У меня есть массив в actionTable.get (состояние).
Когда я иду, чтобы добавить объект в массив, а именно Reduce, свойства Reduce, кажется, не идут с ним.
Массив имеет тип Action [], где Action является суперклассом Reduce, может ли это быть причиной?
Добавление приведения к массиву:
actionTable.get(state)[t] = new Reduce(st.items.get(item).prod);
Проверка наличия заголовка поля перед его добавлением:
System.out.println(Prod.prods.get(st.items.get(item).prod).head);
Проверка, имеет ли добавленное уменьшение правильное поле заголовка:
System.out.println(actionTable.get(state)[t].prod.head);
A NullPointerException
встречается в последнем операторе печати. Часть .prod
определена, но .prod.head
является нулевым, даже если исходный объект prod
имел определенную головку.
Это конструктор для уменьшения:
Reduce(int pr) {
p = pr;
length = Prod.prods.get(pr).length;
prod = Prod.prods.get(pr);
}
Определены все RHS присвоений в конструкторе. Поэтому я не понимаю, почему поле head в объекте prod, к которому имеет доступ новый Reduce, не определяется при доступе к нему через actionTable.