3

JEP 256:BeanInfo Annotations提供了 forJavaBeanBeanPropertyannotations。虽然没有太多的文档,但我一直希望这将允许我们使用注释将类上的字段指定为 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' 不适用于字段

编译器报错:

Error:(8, 5) java: annotation type not applicable to this kind of declaration

➠ 我是否误解了这些新注释的目的?还是我有一些语法问题?

除了上面链接的 JEP 和 JavaDoc 之外,我没有找到任何文档。

我正在试验 Java 9 的最新候选版本,目前是 macOS Sierra 10.12.6 上的 Java 9+181。

4

1 回答 1

2

javadocBeanProperty@Target(METHOD). _ 看起来这是一种PropertyDescriptor无需创建BeanInfo实现即可自定义 s 的方法。我不认为它打算像Lombok那样工作。(谢天谢地——请参阅为什么使用 getter 和 setter?出于各种原因,显式方法是个好主意。)

于 2017-08-19T23:53:32.920 回答