• 后端——框架——容器框架——spring_core——《官网》阅读笔记——第七章节(NULL-safety)


    第七章节介绍Null-safety,作用是在开发阶段添加是否可以为NULL的约束条件,在运行阶段避免抛出空指针异常。

    1、注解

      原著中介绍了4个注解。

    1. @NonNull:用于添加对象属性,方法参数,方法返回值不为NULL的约束条件。
    // 对象属性上
    @NonNull
    private String userName;
    // 方法参数上
    public static void testLiteralExp(@NonNull String str) {}
    // 方法返回值上
    public @NonNull String test(){}
    

      2.@Nullable:与@NonNull作用刚好相反,属性,方法参数,返回值可以为NULL

      3.@NonNullApi:当前包下面的所有方法参数和返回值都不可以为NULL,可以被@Nullable覆盖。

    @org.springframework.lang.NonNullApi
    package learn.test;
    

      4.@NonNullField:当前包下面的对象的所有字段都不可以为NULL,可以被@Nullable覆盖。

    2、IDE

      当字段,方法参数,方法返回值添加上这些注解时,IDE会有相应的提示。本文以Eclipse为例演示具体的步骤

    1. 第一步:打开Window---->preferences----->Java------>Complier---->Error/Warnings

      找到Null analysis,展开,点击enable annotation-based null analysis。

      

      2.在下面的use default annotation for null specifications把对勾去掉,点击configure,配置如下图,

      

      3.点击Apply,重新编译即可看到效果。

      

    3、JSR305

      JSR305中也有相同功能的注解,而且还有很多其他的注解,使用这些注解首先必须引入jsr305的jar包

    <!-- https://mvnrepository.com/artifact/com.google.code.findbugs/jsr305 -->
    <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>3.0.2</version>
    </dependency>
    

      编写代码时,再次使用NonNull注解时,会发现有javax.annotation.NonNull。

    import javax.annotation.Nonnull;
    

      要使编译器提示,需要重新配置第二步,将注解修改为javax.annotation.NonNull等注解

  • 相关阅读:
    Educational Codeforces Round 81 (Rated for Div. 2) A-E
    SEERC 2018 I
    manjaro linux java环境配置
    Pangu and Stones HihoCoder
    Linux下 vim 的配置
    C++内存管理技术
    Interview_C++_day27
    Interview_C++_day26
    Interview_C++_day25
    Interview_数据库_day24
  • 原文地址:https://www.cnblogs.com/rain144576/p/12272405.html
Copyright © 2020-2023  润新知