这可能是一个天真的问题。我责怪我对Java Bean的经验不足。
我使用Java Bean如下 -
我的班级ComponentModel
有boolean
成员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()
返回'程序化名称'。
什么是程序化名称?为什么它与我上述类成员的名字不同?
答案 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。