Java Beans查询与PropertyDescriptor类的getName方法有关

时间:2012-04-26 08:39:05

标签: java javabeans propertydescriptor

这可能是一个天真的问题。我责怪我对Java Bean的经验不足。

我使用Java Bean如下 -

我的班级ComponentModelboolean成员isComponentEditable

然后我有一个ComponentPropertyEditor课程,其中我执行以下操作 -

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

        }

我发现上述成员getName()的{​​{1}}被归还为isComponentEditable。我的印象是,对于类,成员名称将按照componentAsEditable中的原样返回。

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

什么是程序化名称?为什么它与我上述类成员的名字不同?

1 个答案:

答案 0 :(得分:0)

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

这是程序化名称,因为它是您在属性更改时触发事件时使用的名称,例如,使用Groovy或JSP EL等脚本语言访问属性时将使用的名称:< / p>

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

有关详细信息,请参阅http://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html