http://openjdk.java.net/jeps/256提供了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中的Java9项目中尝试这样做时,我在IDE中得到了"@“注释上的错误:
@BeanProperty‘不适用于字段
编译器报告错误:
错误:(8,5) java:注释类型不适用于此类声明
➠,我是否误解了这些新注释的目的?还是我有语法问题?
除了上面链接的JEP和JavaDoc之外,我没有找到任何其他文档。
我正在试验最近发布的Java9的候选版本,目前是JavaSierra10.12.6上的9+181。
发布于 2017-08-19 23:53:32
javadoc说BeanProperty是@Target(METHOD)。看起来,这是一种无需创建PropertyDescriptor实现就可以定制BeanInfo的方法。我不认为它的目的是像https://projectlombok.org/那样工作。(谢天谢地--参见为什么要使用getter和setter?,因为显式方法是个好主意。)
https://stackoverflow.com/questions/45776211
复制相似问题