麻烦问一下老师,我的编译出现这个 报错

麻烦问一下老师,我的编译出现这个 报错

Exception in thread "Thread-0" Exception in thread "Thread-1" java.lang.NullPointerException

at com.test.GenerateWeather.run(GenerateWeather.java:17)

at java.lang.Thread.run(Unknown Source)

java.lang.NullPointerException

at com.test.ReadWeather.run(ReadWeather.java:17)

at java.lang.Thread.run(Unknown Source)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小脸 2020-04-08 16:42:32

同学你好,代码中的问题如下:

Weather类

    1、if与else的条件交换位置且为了各个类单独对异常处理,这里建议使用try..catch。具体修改如下:

http://img1.sycdn.imooc.com//climg/5e8d8d23097e2b4806260530.jpg

http://img1.sycdn.imooc.com//climg/5e8d8d3b099ad72406540491.jpg

GenerateWeather类/ReadWeather类

    1、调用wait()或者notify()之前,需要使用synchronized语义绑定住被wait/notify的对象。

    2、分别调用read方法与generate方法时,写在for循环内,try语句外。

具体修改如下:

http://img1.sycdn.imooc.com//climg/5e8d8e0e09ada2fd06050361.jpg

http://img1.sycdn.imooc.com//climg/5e8d8e2b09fcd07505020366.jpg

WeatherTest类

1、在主方法中,应该先生成天气类的对象。然后分别通过传入该对象去启动生成数据和读取数据的线程。具体修改如下:

http://img1.sycdn.imooc.com//climg/5e8d8e5b097cd4d806720237.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 小飞侠biubiubiu #1
    1、调用wait()或者notify()之前,需要使用synchronized语义绑定住被wait/notify的对象。 2、分别调用read方法与generate方法时,写在for循环内,try语句外。 ----这一块我尝试这么写,会抛出两次try/catch ,而且程序无法运行。。。不知道是不是我写的有问题,我把read方法和generate方法放到try块内,就正常的输出了
    2020-04-08 17:26:32
  • 同学你好, 1、老师在之前的回答中有说到哦,在Weather类中read方法和generate方法中对wait要进行try..catch处理。 2、在GenerateWeather类/ReadWeather类时,分别调用generate方法与read方法时,要写在for循环内,try语句外。 祝学习愉快!
    2020-04-08 18:00:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师