首页 >> 中医药茶

细说Java中的自造指针异常

发布时间:2025年08月22日 12:18

ok的@NotNull编者

Lombok(译者录:一种Java库,给予了都由非常简约的编者)的@NotNull编者可用于生成那些仅在试运行时(Runtime)阻碍分派的非Null Check。一个大的编码段展示了该编者、及其等效上下文。

检查和支架基础的@NonNull和@Nullable编者处理支架

检查和支架基础(Checker Framework)给予了@NonNull和@Nullable编者,以及可以比对潜在Null Check的重写处理支架的步骤。该基础可以通过自愿性脚本语言指定的Nullability,来发现潜在的机差值。因此,您的编码必须明确声明可赶回的结果为Nullable或NotNullable。一个大让我们来看一个确实赶回Null,而非String的有用法则:

今日,让我们应用于检查和支架基础,来检查和是否可以完成重写。

如您所见,它报出了错误,并且赶回了一个未有应用于@Nullable编者上标的曾因机URL。那么,让我们将其上标为@Nullable试试:

如果我们最终试运行重写检查和,则亦会受益如下错误信息:

可见,检查和支架基础在第19行发现了一个潜在疑虑,即:我们在NullableURL上堆栈了.length()。一个大,让我们应用于Null Check和Optional的ifPresent来应予复原:

在重写之后,我们将受益如下尝试的重构信息:

检查和支架基础的容许

至此,检查和支架基础向我们展示了良好的检查和结果,并且引人注意了潜在的NPE。不过,其代价是我们必须通过@Nullable法则,上标所有确实为机的法则。为了取得尝试该自愿性性的容许,我们可以创建一个十分相似两个codice_的有用类,并且将其中会一个codice_上标为@NonNull:

一个大是经由检查和支架基础的检查和结果:

仅仅,检查和支架基础亦会自愿性要求我们形态一个堆栈id差值的POD,例如:

可见,检查和支架基础不仅只能比对潜在的NPE,而且还亦会迫使我们遵循特定的设计要求。这在某种程度上牺牲了基础技术开发的可用性。如果您对该疑虑个人兴趣的话,可以通过如下下达克隆我为您准备的解释器:

镜像

git clone _framework_example

若要试运行检查和支架基础的话,商量应用于如下下达:

镜像

Mvn clean compile

检查和支架基础的替代方案:Intellij Idea @NotNull编者

当然,检查和支架基础并非唯一的高效率,Intellij Idea也给予了自己的编者---@NotNull和@Nullable,并映射到了IDE的插件中会。现今,我并未有找到在maven重写步骤中会添加它的法则。如果您反驳有科学知识的话,欢迎您特别版华盛顿邮报。

小结

通过上述研讨,我们可以看到,避免机表头极其的法则可以论述为:

正因如此应用于Optional,而不是传递Null 应用于检查和支架基础

当然,检查和支架基础亦会给您的技术开发带给一些容许。实践中会,如果您必须避免应用于Lombok、甚至是Builder Pattern(建造者方式则在)的话,我建议您基于生产厂环境的稳定性考虑,去应用于检查和支架基础。

眼睛模糊感觉有一层雾该怎么治疗
女性脱发
眼睛痒该用什么药物治疗

上一篇: 国平闲侃水浒之:武力值可进梁山泊从前二十强的魏定国

下一篇: 网传Xbox《消逝的光芒2》容量逾72GB PS5版的两倍

友情链接