这样输出为什么会出现空指针的错误啊

这样输出为什么会出现空指针的错误啊

http://img1.sycdn.imooc.com//climg/5f3644570956dc6c11970631.jpg还有老师我想问一下,Song类重写了toString方法能不能直接输出歌曲名字啊

正在回答

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

3回答

同学你好,这里代码书写错误,如:

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

pl8是PlayList类型对象,不是一个集合,不能使用循环对其遍历。

这里应该是pl8调用getMusicList()获取播放列表中的歌曲集合,然后再对其进行遍历,如:

for(Song  s :  pl8.getMusicList() )

祝:学习愉快~

好帮手慕阿满 2020-08-19 15:48:17

同学你好,问一下同学是oos.writeObject(s)这句代码报空指针异常吗?

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

建议同学将代码贴上来,方便我们具体测试。

祝:学习愉快~


  • 提问者 金鱼眼 #1
    case 8: try { FileOutputStream fos = new FileOutputStream("123.txt"); // ObjectOutputStream oos=new ObjectOutputStream(fos); OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8"); System.out.println("导出播放列表中的所有歌曲"); System.out.println("请输入要导出的播放列表:"); String strPlayListName8 = sc.next(); // 查询列表是否存在 PlayList pl8 = plc.searchPlayListByName(strPlayListName8); if (pl8 == null) { System.out.println("该播放列表不存在"); } else { for(Song s:pl8) { //<---提示这里空指针异常 if(s!=null) { osw.write(s.toString()); osw.flush(); }else break; } }osw.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }
    2020-08-19 15:52:13
好帮手慕阿满 2020-08-14 17:35:37

同学你好,问一下同学是哪一行报空指针异常,建议同学具体指出来一下。

Song类重写了toString方法可以直接输出歌曲名称,同学可以定义一个Song类对象,调用toString()方法输出一下试试。

祝:学习愉快~

  • 提问者 金鱼眼 #1
    增强型for循环那句报空指针
    2020-08-19 11:13:49
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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