JEP 256:BeanInfo 注释 http://openjdk.java.net/jeps/256为JavaBean http://download.java.net/java/jdk9/docs/api/java/beans/JavaBean.html and BeanProperty http://download.java.net/java/jdk9/docs/api/java/beans/BeanProperty.html注释。虽然没有太多文档,但我一直希望这将允许我们使用注释将类上的字段指定为 JavaBean 样式属性,而无需创建样板文件getter/setter 访问器/修改器方法 https://en.wikipedia.org/wiki/Mutator_method.
So this:
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。
The javadoc http://download.java.net/java/jdk9/docs/api/java/beans/BeanProperty.html says BeanProperty
is @Target(METHOD)
。看来这是一种定制方式PropertyDescriptor http://download.java.net/java/jdk9/docs/api/java/beans/PropertyDescriptor.html无需创建BeanInfo http://download.java.net/java/jdk9/docs/api/java/beans/BeanInfo.html执行。我不认为它的目的是像Lombok https://projectlombok.org。 (谢天谢地——看为什么要使用 getter 和 setter? https://stackoverflow.com/questions/1568091/why-use-getters-and-setters出于所有原因,显式方法是一个好主意。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)