猿问

@PropertyId 注释“此位置不允许”

我遇到了这个错误,似乎无法找到如何让它工作。我的代码,简单地遵循一些 Vaadin10+ 练习:

@PropertyId("string")
final TextField stringField = new TextField("A simple string");

这不会编译,突出显示告诉我作为这个问题的标题的错误的注释。编译错误并没有说明更多。

知道为什么它不起作用吗?作为参考,这是 eclipse (LTS) 和 Java 8 中的一个 Maven 项目,并且我在 pom 中不缺少任何依赖项,因为我从练习文件存档中复制了 pom 的工作副本。

无论如何,我只需要它来使用 javax 验证器进行 bean 验证,所以我不需要那么难。我只是想了解它为什么会破裂。


MYYA
浏览 116回答 1
1回答

慕莱坞森

您所指的错误消息发生在例如声明用于方法的注释改为用于例如类或实例字段时。@PropertyId在 Vaadin 中被定义为@Target({ ElementType.FIELD })意味着它应该用于实例字段。由于您没有显示导致问题的代码的完整上下文,我可以想象两个潜在的原因:YourstringField是方法中的局部变量,而不是类中的实例字段。您不小心@PropertyId从 中导入了一些其他注释而不是预期的注释com.vaadin.flow.data.binder.PropertyId。
随时随地看视频慕课网APP

相关分类

Java
我要回答