细说Java中的自造指针异常
发布时间:2025年08月22日 12:18
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(建造者方式则在)的话,我建议您基于生产厂环境的稳定性考虑,去应用于检查和支架基础。
。眼睛模糊感觉有一层雾该怎么治疗女性脱发
眼睛痒该用什么药物治疗
- 国羽男单临时出头落寞背影,赛季仍无缘决赛,不气馁期待摆脱困境
- 去年战绩傲视全国家联盟 如今队拆得面目全非 爵士成这样拜独行侠所赐
- 漳州福清江阴港现放射状晚霞 美轮美奂
- 足协罚款:广州队新星因暴力行为停赛3场 罚款人民3万元
- 输不起了,周琦归队合练高诗岩或改用徐杰,次战中国男篮不容有失
- 中国乒乓球大捷!3-2,王楚钦、王曼昱大肾脏,1-2落后轰2-0逆转
- 2年3000万!湖人队总冠军后卫签了!西部再添争冠队
- 高烧39.5度!周琦带病举行合练,为中国男篮拼了,大6岁爱妻心疼
- 孩子基础教育真是一个课题和难题
- 河南36岁二胎妈妈“喜提”奶奶个人身份,早婚早育一般要承担两个后果
- 96年公牛取得创纪录的72全胜10负,当时都输给了谁?铁三角表现如何
- 广东队好消息!马尚启程归队,下赛季或率队剑指三冠王
- 广东:90后宝妈连生五个儿子后又怀六胎?当事人:老公想要个妹妹
- C罗女友乔治娜晒全身照,身型傲人!抱着3孩子,对待迷你罗如亲生
