gpt4 book ai didi

java - 是否有一个未弃用的默认类级别注释,默认情况下指定非空返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:03 26 4
gpt4 key购买 nike

Google 让我失望了。曾经有这样的注解: ReturnValuesAreNonnullByDefault .

但这现在已被弃用,javadoc 没有指出要使用哪个新注释。整个类的@Nonnull 不适用于返回值,因为我刚刚对其进行了测试,并且没有收到有关返回 null 的方法的警告。我不想专门注释每个返回值,那么有没有好的选择?

最佳答案

您可以使用 this answer构建您自己的简单 @EverythingIsNonnullByDefault 注释以在包/类级别应用以涵盖所有情况,或 this one它向您展示了如何创建单独的注释来管理字段和方法返回值。我们选择全部使用它们,但倾向于在包级别应用“一切”版本。

如果您真的很着急,请复制并粘贴已弃用的注释并删除弃用。

package com.sample;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

import javax.annotation.meta.TypeQualifierDefault;

/**
* This annotation can be applied to a package or class to indicate that the
* classes' methods in that element all return nonnull values by default
* unless there is
* <ul>
* <li>an explicit nullness annotation
* <li>a default method annotation applied to a more tightly nested element.
* </ul>
*/
@Documented
@Nonnull
@TypeQualifierDefault(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ReturnValuesAreNonnullByDefault {
// feel free to name it MethodsAreNonnullByDefault; I find that confusing
}

关于java - 是否有一个未弃用的默认类级别注释,默认情况下指定非空返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28304766/

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