java非空判断优化_如何优化if判断中,极其长的条件?

本文介绍了如何通过自定义注解和反射优化Java对象的非空判断,避免冗长的if条件。通过创建@EmptyCheck注解标记需要校验的字段,然后利用反射获取并判断这些字段的值,实现更灵活、可维护的非空检查代码。
摘要由CSDN通过智能技术生成

看题主的问题,虽然直接每个对象每个字段都去get判空是可以,但是这样的代码明显不方便维护,而且可能越加越多,因此我分析主要需要解决以下两个问题

每个实体类中的字段并不是所有字段都需要判空,所以这里会有修改的隐藏需求(增加或减少需要判断的字段)

如果解决第一步,能将需要校验的字段筛选出来,那剩下的问题就是如何将所有的字段值取出来加以判断

针对这两个问题,我认为

问题1可以通过自定义注解来标示一下需要校验的字段,用注解标示字段后,在需要增加或减少字段校验,只需要修改对应实体类里的属性注解即可,不需要再修改校验类

问题2,取值出来,自然想到是反射了

这就有了一下的代码:

首先是标注的注解EmptyCheck

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

public @interface EmptyCheck {

}

然后注解到一个实体类A中的字段里,其中a1,a3字段需要判空,a2字段不需要

@Getter

@Setter

public class A {

@EmptyCheck

private String a1;

private String a2;

@EmptyCheck

private String a3;

}

以上是准备工作,接下来就是写如何校验了,我采用了一个校

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值