提示四十九:检查参数的有效性

提示四十九:检查参数的有效性。

  1. 方法的参数限制,应该在文档中指明,并且在方法体的开头处检查参数,以强制施加这些限制。
  2. 如果没有进行参数限制,最严重的会导致改变破坏了对象的状态,并在其它使用了被破坏的对象的时候抛出了异常。
  3. Objects类提供了一些检查校验的方法,比如Java7的Objects.requireNonNull,Java9的checkFromIndexSize, checkFromToIndex等等。
  4. 对于有一些参数,方法本身没有用到,但是却被保存起来供以后使用,校验这类参数尤为重要。比如构造方法和set方法。
  5. 假设方法对于它能接受的所有参数值都能合理的完成工作,对参数的限制就应该越少越好。

我们系统中关于参数校验也存在问题,特别是在接口逻辑中,可能有一套统一的逻辑来校验更好,我这边尝试引入了一些外部包,可以通过注解的方式来实现。

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        
    @Valid
    @Size(min = 7, max = 11, message = "长度必须大于等于7或小于等于11")
    private String companyId4CF;
    
    ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); //create bean
    Validator validator = factory.getValidator();
    Set<ConstraintViolation<CommonCustomizedFieldCriteria>> validate = validator.validate(criteria);
    validate.forEach(action -> System.out.println(action.getMessage()));
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容