2017-08-19 20 views
0

JEP 256: BeanInfo Annotationsは、JavaBeanBeanProperty注釈を提供します。多くのドキュメントはありませんが、これにより、アノテーションを使用して、ボイラープレートgetter/setter accessor/mutator methodsを作成せずにJavaBeanスタイルのプロパティとしてクラスのフィールドを指定できるようになりました。Javaでの新しいBeanInfoアノテーションの使い方9

だから、これは:

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' not applicable to field

は、コンパイラはエラーを報告します。

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を試しています。

答えて

1

javadocは、BeanProperty@Target(METHOD)と記載しています。これは、を実装することなくPropertyDescriptorをカスタマイズする方法のようです。私はそれがLombokのように動作するとは思わなかった。 (そして良いことに感謝 - すべての理由から明示的な方法が良いアイデアのためにWhy use getters and setters?を参照してください)

関連する問題