Java PipedWriter和PipedReader在不同类中使用时返回NullPointerException

Java PipedWriter和PipedReader在不同类中使用时返回NullPointerException,java,Java,我在java中使用pipedwriter和pipedreader从管道读写数据,但我遇到了一个问题,当我试图在另一个类中使用pipereader时,它返回空指针异常。请检查下面的代码,当尝试使用pipedreader.read()读取数据时,类RP给出了NullPointerException;方法 明显的问题是您有两个WP实例,但只对其中一个实例调用run 这是您调用的run上的WP: public static void main(String[] args)throws Exception

我在java中使用pipedwriter和pipedreader从管道读写数据,但我遇到了一个问题,当我试图在另一个类中使用pipereader时,它返回空指针异常。请检查下面的代码,当尝试使用pipedreader.read()读取数据时,类RP给出了NullPointerException;方法


明显的问题是您有两个
WP
实例,但只对其中一个实例调用
run

这是您调用的
run
上的
WP

public static void main(String[] args)throws Exception {
        WP writer = new WP();
这是您使用的未初始化的
WP

class RP extends Thread{
    WP obj = new WP();
值得注意的是,创建一个线程调用
start
,然后紧接着调用
join
,没有什么意义。您不妨调用
run
函数

为了避免
null
s,我建议标记字段
final

class RP extends Thread{
    WP obj = new WP();