• 20200106 Spring官方文档(Core 7)


    7.Null 安全

    尽管Java不允许您使用其类型系统来表示 null 安全性,但Spring Framework现在在org.springframework.lang包中提供了以下注释,以使您可以声明API和字段的null性:

    • @Nullable:表示特定参数,返回值或字段可以为null的注释。
    • @NonNull:指示特定参数,返回值或字段不能为null的注释(分别适用于@NonNullApi@NonNullFields的参数/返回值和字段不需要)。
    • @NonNullApi:程序包级别的注释,它声明非null为参数和返回值的默认语义。
    • @NonNullFields:程序包级别的注释,它声明非null为字段的默认语义。

    Spring框架本身使用了这些注释,但是它们也可以在任何基于Spring的Java项目中使用,以声明null安全的API和可选的null安全的字段。 尚不支持泛型类型参数,varargs和数组元素的可空性,但应在即将发布的版本中使用它们,有关最新信息,请参见SPR-15942。 可空性声明预计将在Spring Framework版本之间进行微调,包括次要版本。 在方法主体内部使用的类型的可空性超出了此功能的范围。

    其他常见的库(如Reactor和Spring Data)提供了使用类似可空性设置的空安全API,从而为Spring应用程序开发人员提供了一致的总体体验。

    7.1。用例

    除了为Spring Framework API可空性提供显式声明外,IDE(例如IDEA或Eclipse)还可以使用这些注释来提供与空安全性相关的有用警告,从而避免NullPointerException在运行时出现警告。

    7.2。JSR-305元注释

    Spring注释使用JSR 305注释(休眠但广泛使用的JSR)进行元注释。 JSR-305元注释使工具供应商(如IDEA或Kotlin)以通用方式提供了空安全支持,而无需对Spring注释进行硬编码支持。

    既不需要也不建议向项目类路径添加JSR-305依赖项以利用Spring空安全API。 只有诸如在其代码库中使用空安全注释的基于Spring的库之类的项目,才应添加com.google.code.findbugs:jsr305:3.0.2(具有compileOnly Gradle配置)或Maven提供的作用域,以避免编译警告。

    参考资料

    Spring 5 core 中的 @NonNull 是个什么鬼?!

  • 相关阅读:
    win32: 静态控件(Static)
    malloc() 和 calloc()有啥区别
    win32: WM_PAINT 实现双缓冲缓图
    char 与 unsigned char的本质区别
    iconv: iconv_open(pToCharset, pFromCharset); 的附加参数//IGNORE
    c语言: 生成随机数
    深圳市住房公积金管理中心
    利用latex制作个人简历
    分布式系统概念与设计中文版(第三版)
    数据结构-红黑树
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/12158503.html
Copyright © 2020-2023  润新知