gpt4 book ai didi

java - 仅允许 null 选择加入

转载 作者:行者123 更新时间:2023-12-01 04:25:49 24 4
gpt4 key购买 nike

假设我讨厌 null。让我们假设像@Nullable 这样选择退出对我来说还不够。假设我希望它被选择加入;如果对象未显式使用 @Nullable 注释,则不允许使用 null。

示例:

MyClass derp = null;           // Compiler error
@Nullable MyClass derp = null; // Fine
@Nullable Integer x = 4; // Fine
@Nullable Integer x = null; // Fine
Integer x = 4; // Fine
Integer x = null; // Compiler error

另一个例子:

public static void myFunction(@Nullable Integer x) {
Integer y = x; // Compiler error, because we know x might
// be null, and that's not allowed. In other
// words: Integer != @Nullable Integer
}

我该如何解决这个问题?我会写某种 javac 插件吗?也许是预编译器通行证?也许有一个框架可以做到这一点?或者也许我可以修改javac的源代码?

谢谢!

最佳答案

在标有 @NonNullByDefault 的代码区域内您基本上得到了问题的要求:默认情况下的任何异常都需要显式声明。可以为每个类/接口(interface)或每个包声明默认值。

注释 1:您需要空注释的 Java-8 变体 ( null type annotations ),因此它们会影响所有位置的类型引用。

注 2:请参阅 Java doc有关详细信息,默认值到底适用于何处(顺便说一句,可以进行微调)。由于@Jon Skeet 评论中提到的困难,特意省略了 ARRAY_CONTENTS

关于java - 仅允许 null 选择加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18503413/

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