getresourceasstream方法返回空_Java21Spring8Spring Nullsafety 空安全

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

  • @Nullable:表示特定参数,返回值或字段可以为的注释null

  • @NonNull:表示不能指定特定参数,返回值或字段的注释null(分别不需要在参数/返回值和字段@NonNullApi以及@NonNullFields应用的字段上)。

  • @NonNullApi:程序包级别的注释,它声明非null作为参数和返回值的默认语义。

  • @NonNullFields:程序包级别的注释,它声明非null作为字段的默认语义。

        Spring Framework 本身利用了上面这几个注释,但它们也可以运用在任何基于Spring的Java 项目中,以声明空安全api 和 空安全字段。尚未支持泛型和数组元素的可空性,但应也即将发布在后来的版本。Spring Null-Safety出现在Spring5中,让我们更方便的编写空安全的代码,这叫做null-safety。null-safety不是让我们逃脱不安全的代码,而是在编译时产生警告。此类警告可以在运行时防止灾难性空指针异常(NPE)。

        那么空安全是个啥玩意呢?

        @NonNull注释是null-safety的所有注释中最重要的一个,我们可以使用此注释在期望对象引用的任何地方声明非空约束:字段、方法参数或者方法返回值。

        Spring 的null-safety特性能够允许idea或者eclipse报告这个潜在的威胁,也就是说结合ide的配置,在开发时警告提醒。

        @NonNull 注解能够帮助你确保null-safety。然而,如果此注释直接装饰所有的字段的话,就会污染整个代码库。

Spring提供了另外一个不允许为null的注解 — @NonNullFields。这个注解适合用在包级别上,通知我们的开发工具注释包中所有的字段,默认的,不允许为null

        @NonNullFields注释通常比@NonNull更好,因为它有助于减少样板。但是,有时我们想要从包级别指定的非null约束中免除某些字段,这时候就会使用到@Nullable注解。

        @NonNullFields注释仅适用于其名称所示的字段。如果我们想对方法的参数和返回值产生相同的影响,我们需要@NonNullApi。

好吧,没啥意思,暂不细研究。

8b2286c583c0e0dec6ca94e07da6c39c.png

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值