java - 获取 NullPointerException 但打印对象返回内存引用和空值
问题描述
我正在尝试制作一个模拟 NFA 的程序,我有状态对象和 NFA 对象(命名机器)。状态对象现在引用其他状态(如树数据结构但没有层次结构),NFA 对象仅定义起始状态,其余的从那里链接。
当我尝试将 NFA(命名机器)的启动状态分配给搜索变量(类型 State)时,问题就出现了。当我稍后尝试使用此对象移出 NFA 时,它会给出一个空指针错误。调试时(由打印语句显示)似乎分配变量似乎工作正常但更奇怪:当我稍后打印对象时,它会打印内存引用和空值。
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
非常感谢您对这里出了什么问题的任何想法
解决方案
我的答案很明显,但是如果打印了 4 行,那么您应该有 4println
条指令(或"\n"
其中一条指令),如果没有,请检查隐藏的块println
。
至于我,最有可能的是,在隐藏的块中,您有一个println
可以很好地打印您search + "last ref"
的语句和另一个设置search
为null
. 如果我是对的,那么您的最后一个println
是打印,如果您尝试采取行动null last ref
,您将拥有。NullPointerException
search
推荐阅读
- wordpress - 如何修复:Lighthouse 返回错误:FAILED_DOCUMENT_REQUEST
- mysqli - “与服务器通信时发生错误。” - 使用 Jtables
- go - 无法为共享对象编译插件
- sql - 像这样使用 HAVING 子句是否正确?
- html - 如何删除网站超链接末尾的 .html?
- python - 使用 boto3 检索具有自动缩放设置的 EMR 集群列表
- python - tkinter 元素不使用窗口调整大小,使用包
- php - 将变量从 php 脚本发送到 python 脚本
- typescript - 来自其他两个函数的组合构建函数
- google-plus - G Suite Marketplace 上的“plus.me”范围应该替换什么?