Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:从流读取时如何避免NullPointerException?_Java_Sockets_Exception_Serialization_Stream - Fatal编程技术网

Java:从流读取时如何避免NullPointerException?

Java:从流读取时如何避免NullPointerException?,java,sockets,exception,serialization,stream,Java,Sockets,Exception,Serialization,Stream,因此,我有一个this ObjectInputStream,它在大多数情况下都是空的。(这是一个聊天服务器。)我认为这段代码可以处理空条件。(这是在它自己的线程中,这样它就不会阻塞程序的其余部分。我正在重写以前的解决方案,以发送对象,而不是字符串,用于阻塞,直到它得到一些东西。我正在寻找一种具有类似行为的方法。) 当程序运行时,我在这里得到一个空指针异常。(因为该值显然是空的!)我如何让流等待,直到它接收到一些东西来尝试读取它?(或者继续尝试,直到得到非空的内容?) 编辑:堆栈跟踪。(看起来有点

因此,我有一个this ObjectInputStream,它在大多数情况下都是空的。(这是一个聊天服务器。)我认为这段代码可以处理空条件。(这是在它自己的线程中,这样它就不会阻塞程序的其余部分。我正在重写以前的解决方案,以发送对象,而不是字符串,用于阻塞,直到它得到一些东西。我正在寻找一种具有类似行为的方法。)

当程序运行时,我在这里得到一个空指针异常。(因为该值显然是空的!)我如何让流等待,直到它接收到一些东西来尝试读取它?(或者继续尝试,直到得到非空的内容?)

编辑:堆栈跟踪。(看起来有点短不?)


我是否遗漏了一些明显的内容?

假设在此行中抛出异常:

while((message = (Message) JavaChat.connection.oInStream.readObject()) != null)
可能的原因有三种,而且只有三种

  • JavaChat
    是一个变量或常量,它是
    null
    。(不太可能,因为如果
    JavaChat
    不是类名,那将是一个巨大的Java风格冲突。)

  • JavaChat.connection
    的值为
    null

  • JavaChat.connection.oInStream
    的值为
    null

  • 您的问题中没有足够的信息来区分这些原因。下一步应该仔细检查源代码,看看在程序上下文中哪些解释是可能的。如果这(以及一些逻辑!)没有帮助,那么可以使用调试器或跟踪打印来确定哪些值是
    null

    一旦您找到
    null
    文件,请将其返回到它的来源。。。为什么



    调试程序的最佳方法是理解源代码并应用逻辑推理。

    请发布带有完整回溯的
    NPE
    ,以及它指向的部分代码。这是它指向的部分代码。@QuickBrownFox您能重新措辞吗?时间不早了,这些词对我来说没有任何意义。@hcbpsheanigans发布stacktrace如果是那一行,然后是
    JavaChat
    JavaChat.connection
    ,或
    JavaChat.connection.oInStream
    中的一个,计算为
    null
    。在任何情况下,我都可以保证JavaChat.connection不为null,所以听起来我需要仔细检查3。
    java.lang.NullPointerException
        at javachat2.IncomingReader.run(IncomingReader.java:33)
        at java.lang.Thread.run(Thread.java:745)
    
    while((message = (Message) JavaChat.connection.oInStream.readObject()) != null)