![](/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.