@PropertyId 注解 "is disallowed for this location"
@PropertyId annotation "is disallowed for this location"
我遇到了这个错误,似乎找不到如何让它工作。
我的代码,简单地遵循一些 Vaadin10+ 练习:
@PropertyId("string")
final TextField stringField = new TextField("A simple string");
这不会编译,突出显示我作为此问题标题放置的错误的注释。编译错误并没有说明更多。
知道为什么它不起作用吗?作为参考,这是 eclipse (LTS) 和 Java 8 中的一个 Maven 项目,并且我在 pom 中不缺少任何依赖项,因为我从练习文件存档中复制了 pom 的工作副本。
无论如何,我只需要用它来使用 javax 验证器进行 bean 验证,所以我 不需要 它那么难。我只是想了解它为什么会损坏。
您提到的错误消息发生在例如当声明用于方法的注释改为用于例如class 或实例字段。
@PropertyId
在 Vaadin 中定义为 @Target({ ElementType.FIELD })
,这意味着它应该用于实例字段。由于您没有显示导致问题的代码的完整上下文,我可以想象两个潜在的原因:
- 您的
stringField
是方法内的局部变量,而不是 class. 中的实例字段
- 您不小心从
com.vaadin.flow.data.binder.PropertyId
. 中导入了其他 @PropertyId
注释而不是预期的注释
我遇到了这个错误,似乎找不到如何让它工作。 我的代码,简单地遵循一些 Vaadin10+ 练习:
@PropertyId("string")
final TextField stringField = new TextField("A simple string");
这不会编译,突出显示我作为此问题标题放置的错误的注释。编译错误并没有说明更多。
知道为什么它不起作用吗?作为参考,这是 eclipse (LTS) 和 Java 8 中的一个 Maven 项目,并且我在 pom 中不缺少任何依赖项,因为我从练习文件存档中复制了 pom 的工作副本。
无论如何,我只需要用它来使用 javax 验证器进行 bean 验证,所以我 不需要 它那么难。我只是想了解它为什么会损坏。
您提到的错误消息发生在例如当声明用于方法的注释改为用于例如class 或实例字段。
@PropertyId
在 Vaadin 中定义为 @Target({ ElementType.FIELD })
,这意味着它应该用于实例字段。由于您没有显示导致问题的代码的完整上下文,我可以想象两个潜在的原因:
- 您的
stringField
是方法内的局部变量,而不是 class. 中的实例字段
- 您不小心从
com.vaadin.flow.data.binder.PropertyId
. 中导入了其他
@PropertyId
注释而不是预期的注释