2012-04-26 57 views
0

这可能会遇到一个天真的问题。我怪我在Java Beans方面的经验不足。
关于PropertyDescriptor的getName方法的Java Beans查询类

林使用Java豆如下 -

我有一个类ComponentModel具有boolean构件isComponentEditable

然后我有一个ComponentPropertyEditor类其中i执行以下操作 -

public ComponentPropertyEditorModel(ComponentModel bean) { 
       BeanInfo info = Introspector.getBeanInfo(bean.getClass()); 
       PropertyDescriptor[] props = info.getPropertyDescriptors(); 
       for (PropertyDescriptor prop : props) 
        System.out.println(prop.getName()); 

     } 

我看到getName()为我的上述d成员isComponentEditable正在返回为componentAsEditable。我的印象是,对于班级来说,成员姓名将被返回,如getName()

javadoc说getName()返回'编程名称'。

什么是编程名称,为什么它与我上述的类成员的名称不同?

回答

0

getFoo()isFoo()访问的JavaBean属性的名称是“foo”。如果您需要访问器方法(isFoo()),则应该致电getReadMethod()

这是编程名称,它是在属性更改时触发事件时使用的名称,例如,或者使用Groovy或JSP EL等脚本语言访问属性时使用的名称:

<c:out value="${bean.componentEditable}"/> 

有关更多信息,请参见http://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html