![](/img/trans.png)
[英]Using jars that use java.beans classes (Introspector, BeanInfo or PropertyDescriptor)
[英]How to use new BeanInfo Annotations in Java 9
JEP 256:BeanInfo批注提供JavaBean
和BeanProperty
批注。 尽管没有太多的文档,但是我一直希望这可以允许我们使用注释将类上的字段指定为JavaBean样式的属性,而不必创建样板化的getter / setter访问器/ mutator方法 。
所以这:
public class Person {
private String name ;
public String getName( ) {
return this.name ;
}
public void setName( String nameArg ) {
this.name = nameArg ;
}
}
……将变成这样:
import java.beans.BeanProperty;
public class Person {
@BeanProperty
public String name ;
}
但是,当我在IntelliJ 2017.2.2的Java 9项目中尝试此操作时,在IDE的“ @”注释中收到错误消息:
“ @BeanProperty”不适用于字段
编译器报告错误:
错误:(8,5)Java:注释类型不适用于这种声明
➠我是否误解了这些新注释的目的? 还是我有一些语法问题?
除了上面链接的JEP和JavaDoc外,我没有找到任何其他文档。
我正在尝试使用Java 9的最新版本,目前是macOS Sierra 10.12.6上的Java 9 + 181。
Javadoc说BeanProperty
是@Target(METHOD)
。 看起来这是自定义PropertyDescriptor
的一种方法,而无需创建BeanInfo
实现。 我不认为它打算像龙目岛那样工作。 (感谢谢天谢地,请参阅为什么使用getter和setter?出于所有原因,显式方法是个好主意。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.