Я пытаюсь создать программу, которая имитирует NFA, у меня есть объекты состояния и объект NFA (с именем machine). Объекты состояния ссылаются на другие состояния (например, древовидную структуру данных, но без иерархии), прямо сейчас объект NFA определяет только начальное состояние, а остальные связаны оттуда.
Проблема возникает, когда я пытаюсь присвоить начальное состояние NFA (именованного компьютера) переменной поиска (тип State). Когда я позже попытаюсь использовать этот объект для перемещения по NFA, он выдаст ошибку нулевого указателя. При отладке (показанной оператором print) кажется, что назначение переменной, кажется, работает правильно, но более странно: когда я печатаю объект позже, он печатает как защиту памяти, так и нулевое значение.
System.out.println(machine.getStart()); //prints out State@6bc7c054
search = machine.getStart(); //assigns the starting state of the NFA to search variable
System.out.println(search); //prints out State@6bc7c054
... (there is no code related to search variable in this chunk)
System.out.println(search + " last ref");//prints State@6bc7c054 last ref (and also)
null last ref
search = search.move(sym);//line that gives NullPointerException
Любые мысли за то, что идет не так, здесь с благодарностью