本文主要是介绍线上项目小坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据类型的比较
今天做个需求时:就是简单的三级分类,分类代码如下:
@Overridepublic List<CategoryEntity> queryListTree(Map<String, Object> params) {List<CategoryEntity> categoryEntities = baseMapper.selectList(null);//System.out.println(categoryEntities);List<CategoryEntity> entityList = categoryEntities.stream().filter(categoryEntity -> categoryEntity.getParentCid() == 0).map(categoryEntity -> {// 得到孩子categoryEntity.setChildren(getChildren(categoryEntities, categoryEntity));return categoryEntity;}).collect(Collectors.toList());System.out.println(entityList);return entityList;}private List<CategoryEntity> getChildren(List<CategoryEntity> categoryEntities,CategoryEntity category){List<CategoryEntity> collect = categoryEntities.stream().filter(entity ->{return entity.getParentCid() == category.getCatId();}).map(entity -> {entity.setChildren(getChildren(categoryEntities, entity));return entity;}).collect(Collectors.toList());return collect;}
return entity.getParentCid() == category.getCatId();里面这段代码,id是Long类型,不属于基本类型,这里出了大bug,在添加分类时,发现这里比较是false,后来经过debug知道这里出了问题。
public static Long valueOf(long l) {final int offset = 128;if (l >= -128 && l <= 127) { // will cachereturn LongCache.cache[(int)l + offset];}return new Long(l);}
数据在-128到127才会自动拆包为基本数据类型。fuck
其实这里知识点很简单,但是写业务时很容易忘记,最好所有都用equals
这篇关于线上项目小坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!