gpt4 book ai didi

Java注解处理工具@NoNull

转载 作者:行者123 更新时间:2023-12-01 17:29:44 24 4
gpt4 key购买 nike

我想创建一个注释来限制开发人员将 null 指定为参数,该参数已用 @NoNull 注释

例如,如果我创建此方法:

public void printLine(@NoNull String line) {
System.out.println(line);
}

在方法调用中,如果用户为 line 指定 null,我希望出现错误:printLine(null);

我使用 APT 的时间只有一点点,我想知道如何做到这一点(如果可能的话)?

这是我迄今为止创建的注释:

@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.SOURCE)
public @interface NoNull {}

最佳答案

编译时间很难检查,因为您实际上正在处理运行时值。如果你想创建注释来自动添加代码来检查这些东西,你应该看看项目lombok:

http://projectlombok.org/

它使用注释处理器将代码添加到您的 bean 中以执行各种操作。

例如:

@Getter @Setter
private int id;

注释处理器会自动向您的 bean 添加 get/set 方法。

我认为它没有空检查,但您应该能够添加它并贡献它。

另一种选择是使用验证 jsr,尽管这需要您在运行时显式验证,但您可以使用代理或 AOP 来完成此操作。

@NotNull @Min(1)
public void setId(Integer id)

关于Java注解处理工具@NoNull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271194/

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