看一下下面的java代码,有什么问题?
PHP中文网
PHP中文网 2017-04-17 15:31:22
[Java讨论组]
PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
PHPz

我把你的代码copy了一份运行了一下,没有报找不到类的错,可能找不到类的问题多半确实如楼上所说,没有编译,但是我的代码编译后运行还是报错,报的空指针的

简单看了一下你报错的地方,是查询完product,再去增加库存的时候,prod为null,所以报错


为啥prod为null,是因为debug可以看到,你的manager类初始化后的prod集合为空,所以根据id找不到对应的prod

有待改进问题一:
根据id去查询数据后,本身查询方法默认的初始值就是null了,所以在调用查询方法时,就本身应该考虑这个查询方法是可能返回null的,所以应该要再调用完查询方法后,首先检查一下是否为null,再做后续操作

那为啥这个manager类里的prod集合大小为0呢?你前面也有增加prod的操作的

其实问题就是出在这个manager增加prod的方法里,查看StockManager.addProduct

可以看到,你的逻辑估计是想做图上所说的两个事,但是这样做,有些问题
有待改进问题二:
最开始的时候集合stock就是空的,所以第一次addprodcut的时候,这个for循环就走不进去,所以后续也走不进去,因为你的stock.add方法写在循环里了,所以stock集合一直为空
有待改进问题三:
list集合本身add方法默认就是添加到集合最后的,所以没有必要去判断循环的位置,只要前面检验id不同了,就可以直接调用
所以建议以下修改:

修改后,程序看起来是正常了,起码没有报错,至于业务上(比如库存)是否有问题,你自己再多多斟酌一下

PHP中文网

请问你编译了吗

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号