【问题标题】:Annotation that throws an exception if the conditions are not met不满足条件时抛出异常的注解
【发布时间】:2021-06-18 12:52:18
【问题描述】:

我的类有一个布尔变量,默认情况下,它的值为false,在执行过程中它可以变为true。还有一些方法只能在变量为真时调用。

我想做这样的事情:

@ConfirmedOnly
public void method() {
    // some code
}

变量不为真时会抛出异常。


我是否必须编写像 Lombok 这样的注释处理程序?

【问题讨论】:

  • 为什么需要注释?
  • @Stultuske 这比方法开头的“复制粘贴”检查更容易阅读,也更好看
  • 不是真的,因为它不能用于其他类。我的第一个猜测是 aop,但是你不能改变那个字段的值。此外,与复制粘贴调用验证相比,复制粘贴注释更容易阅读吗?

标签: java exception annotations annotation-processing


【解决方案1】:

为了给注解赋予行为,您必须编写注解处理器。 (Lombok 是注释处理器的一个示例。)

注解不是在运行时被调用的方法。它是源代码中的一个标记,没有任何行为。 (Java Language Specification section 9.7 表示“注解 是将信息与程序构造相关联的标记,但在运行时不起作用。”)注解处理器赋予它行为。注释处理器在编译时运行,例如通过发出错误或更改源代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多