为了账号安全,请及时绑定邮箱和手机立即绑定

关于BeanInfo的一个问题

关于BeanInfo的一个问题

倚天杖 2019-03-22 18:15:16
import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;       public class BeanInfoTest {                 public int getA(){                          return 1;                }                 public static void main(String[] args) {                         try {                                     BeanInfo bi =Introspector.getBeanInfo(BeanInfoTest.class, Object.class);                                     PropertyDescriptor pd[] = bi.getPropertyDescriptors();                                    for(PropertyDescriptor prodes:pd){                                              System.out.println(prodes.getName());                                              System.out.println(prodes.getReadMethod());                                              System.out.println(prodes.getWriteMethod());                                     }                             } catch (IntrospectionException e) {                                       e.printStackTrace();                               }        }} 附件是结果,它竟然帮我找到了property a。我比较好奇的问题是,我明明没有定义a这个字段的。难道反射的时候都是通过找到getXX setXX方法来判断是不是有这个属性吗?感觉这也太不合适了。还是说这样只是为了让所有权在我们手上,让我们使用规范的bean。提供完整的set get方法和字段?还望知道的人告知一二,
查看完整描述

4 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

class A{
private int a; //这是字段名

public void setAbc( a) {
this.a = a;
}

public int getAbc() {
return this.a;
}

}

abc就是你的属性名 prodes.getName() 拿的是属性名

要区别开字段名 和 属性名


查看完整回答
反对 回复 2019-04-28
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

bean代表一个数据对象,你的测试bean写的就已经不是规范的。
还是说这样只是为了让所有权在我们手上,让我们使用规范的bean。提供完整的set get方法和字段?----这里不一定非要有一对get set方法。可以只有get,但不能只有set,既然用到bean又不符合mvf思想那又有什么意义呢?

查看完整回答
反对 回复 2019-04-28
  • 4 回答
  • 0 关注
  • 505 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信