装配VO时关于category为空时的处理方式

来源:8-3 后台获取商品详情功能开发及PropertiesUtil配置工具,DateTimeUtil时间处理工具开发

MySweeties

2019-07-27

第一:为什么category为null时,要设置ParentCategory为空呢?另外就是为什么前台查看商品详情传过来的Product对象,会存在category为null的情况,我们创建商品时前台是通过下拉列表的方式选择的商品分类,为什么还会发生丢失!刷完了这一节的问答区,看了几个答案,仍是一头雾水,请老师 给个场景 再帮忙解答一下!
图片描述
第二:在上一章节中,递归的结束条件,不太理解,当当前节点没有子节点时,categoryList应该是null值,我想这就是递归的结束条件吧,但是视频中老师的代码并没有判空,而是直接遍历,有点不能理解???
另外,总感觉递归的理解有那么点不痛快,既然,子节点id都是通过selectCategoryChildrenByParentId()方法查询出来的,后边调用自身,还需要selectByPrimaryKey() 在 category != null 判空一次,每个子节点都要这么做一次查询,个人理解,前面四行(除了categorySet.add()这一句)的查询判空,都是为一开始调用方法的categoryId所准备的,与后面的categoryItem无关了,所以能把这四行提到方法外面去,在执行方法前调用一下判空,这样可以减少数据库的访问次数,修改如下面的截图,至于理解的正确性与否,还请老师给解答一下!!!
图片描述
图片描述
第三:带有泛型的返回参数,尖括号内不能不写,因为我看视频时,老师时而写String,时而写的时User,时而又不写,既然不写没有关系的话,那我能不能直接省略掉,只写ServerResponse???

写回答

1回答

geelylucky

2019-07-27

同学,首先第一个问题:不管查询到的数据有没有可能为空,一定要做健壮性判断,这是保持代码健壮的基本操作,所以查询出来的category做一个null判断。假如category为null,那么category.getParentId()必然是空指针异常,所以为了避免这种情况,就默认为根结点。

第二个问题,实践一下是最好不过的。

第三个问题,写String或者User是表示ServerResponse中data中的数据类型,不写就是Object。

0
1
MySweeties
非常感谢!
2019-07-28
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9487 学习 · 8814 问题

查看课程