此篇博文既是为了复习Java枚举类和增强型for循环,也是为了记录在项目当中出现过的问题及解决办法。
🔭问题所在:
1️⃣不知道小伙伴们在项目中有无接触过接口返回的字段是数据库表结构中没有的需求呢?这个就好比:我们需要按照什么什么样字段进行分类展示,但是在实际数据存储时是不需要这个数据的,只是为了前端展示效果。 这里很可能小伙伴对此有疑问了,前端展示不是可以自己做到这个效果么,为啥还后端开发人员返回字段给他们呢?
📚揪出原因:
2️⃣其实刚开始我也是这样觉得的,分类字段名称就让他们定下就好了呗。但是我一参加工作时就是分配在了前端开发人员的办公室里,受到了前端同事的影响,他们跟我说过一句,前端如果去分类搞定就都是 “写死” 状态,如果后期的改动的话,代码变动比较大。听他们这样一说,我恍然大悟,对于数据处理层面而言放在后端来解决始终要比前端处理要来得简单方便一些,并不是说这个会增加后端开发的工作量,只是对于这种开发思想是要放在后端是比较合理的。相比较而言,我处过的一个后端开发的同事,他时不时给我说前端也要解决一些这样类似的问题,不然他们前端跟没干事一样。其实我觉得他说这种话算是不负责任的表现,毕竟他开发的年限摆在那里,也有过一定量的开发经验了,对于我们刚从事这行的晚辈,或多或少还是要应该灌输一些正能量的话,毕竟一块努力,开发团队才能越战越勇呀!!!
🔑解决办法:
3️⃣数据库中没有的字段,想到的办法便是没有的数据我就分类造出来,枚举类即能解决这类问题。举个实例:假设我们的数据库中存放了各类交通工具的一些基本信息,但是需求说明我们要将交通工具按照 “加油” 和 “充电” 进行区分,而在我们数据库表设计中没有该字段(这里就可理解为该数据存在的意义不大,当时未考虑属于额外需求即可),而且也不去动数据表结构,那么我们可以用以下枚举类代码进行实现:
public enum TransportationType {
//加油类型
TYPE_GAS(0,"加油"),
//充电类型
TYPE_POWER(1,"充电"),;
private final Integer code;
private final String name;
//构建构造器
TransportationType(Integer code, String name) {
this.code = code;
this.name = name;
}
//给出code及name的getter方法
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}
4️⃣而在实现类中逻辑思想可以通过遍历枚举类来遍历分类,(下面实体类Demo的构建省略,这个是根据实际情况而定的,但是相关的字段需要跟枚举类中的code和name进行匹配才能达到需求的目标)如下实例代码:
//省略相关类结构,只给出遍历方法
//使用增强型for循环遍历
for(TransportationType transportationType : TransportationType.values()){
//使用枚举类方法values()实现遍历过程
//相关的逻辑代码实现
Demo demo = new Demo();
demo.setTransportationTypeCode(transportationType.getCode());
demo.setTransportationTypeName(transportationType.getName());
...
}
💊注意事项:
5️⃣在一个需求给出时,作为开发人员的我们需要及时与需求沟通,如果遇到不合理的需求要及时的提出,不合理的需求我们实现起来很困难一定要提出疑问,不要“哑巴吃黄连”,等到后面项目都要做完了说你的需求有问题,那样岂不是都成为了作为开发人员的问题的了么?当然并非所有的需求都是不合理的,也有可能是我们相关的技术手段还没有达标。这个时候也不要很气馁,比较我们的同事都是大佬,多向他们取取经,一般情况他们点破一下就能懂了。
🚴🚴🚴积极沟通,实现需求,不是难事!!!
🍆路过的小伙伴,如果博文有帮助到你解决相关问题,可以点赞+收藏+关注一波呀~👊👊👊本人将会持续更新相关项目实战用例的博文,感谢您的支持哦!!!芜湖起飞✈️✈️✈️