gpt4 book ai didi

java - JetBrains 的 @Contract 注释

转载 作者:IT老高 更新时间:2023-10-28 20:41:06 30 4
gpt4 key购买 nike

org.jetbrains.annotations.Contract 注释如何工作?IntelliJ IDEA 如何支持它?

最佳答案

首先,我应该说这个注释仅供IDEA用来检查可能的错误。 Java 编译器将几乎完全忽略它(它将在编译的工件中,但没有效果)。说了这么多……

注解的目的是描述该方法将遵守的契约,这有助于 IDEA 捕获可能调用此方法的方法中的问题。有问题的契约(Contract)是一组分号分隔的条款,每个条款都描述了保证发生的输入和输出。因果由->分隔,描述了当你给方法提供X,Y会always结果的情况。输入被描述为一个逗号分隔的列表,描述了多个输入的情况。

可能的输入是 _(任何值)、null!null(非空)、falsetrue,并且可能的输出会将 fail 添加到此列表中。

例如,null -> false 意味着,如果提供 null 输入,则结果是 false boolean 值。 空 -> 假; !null -> true 对此进行扩展,表示 nullalways 返回 false 和非 null 值将 always 返回 true 等。最后,null -> fail 表示如果您将 null 值传递给该方法,该方法将引发异常。

对于多参数示例,null, !null -> fail 表示在双参数方法中,如果第一个参数为 null 而第二个参数不为 null,则会出现异常被抛出,保证。

如果方法不改变对象的状态,只是返回一个新值,那么你应该设置pure为true。

关于java - JetBrains 的 @Contract 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34620494/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com