gpt4 book ai didi

java - C# 合约与 NotNull/在 Java 中创建自己的合约

转载 作者:行者123 更新时间:2023-11-30 02:39:27 24 4
gpt4 key购买 nike

我想减少 Java 中冗余和冗长的 null 检查,但我了解 Java 没有标准的 @NotNull 注释,而 c# 有可以使用的约定,例如

Contract.Requires( x != null );

我可能会遗漏一些东西,但我不能自己编写代码吗?

public class Contract {

public static void requireNotNull(Object object) {
if ( object == null )
throw new IllegalArgumentException("Contract forbids null");
}

}

这是否缺少 @NotNull 或 Contracts 的任何好处?

最佳答案

代码契约与您在 Java 中编写的内容相反,可以进行静态分析,如果违反,将给出构建错误。您编写的 Java 代码只会给出运行时错误。

例如,如果您将方法上的参数标记为 Not Null,然后尝试在更高层调用它而不执行 null 检查,您将收到错误。这不是编译时错误,因为代码契约是静态分析器的一部分,因此如果您在 Visual Studio 或实现代码契约静态分析器的其他产品之外进行编译,则不会捕获它。

参见this documentation了解更多详情。

关于java - C# 合约与 NotNull/在 Java 中创建自己的合约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42170844/

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