java 反射 getter,java – 通过反射调用getter的最佳方式

我认为这应该指向正确的方向:

import java.beans.*

for (PropertyDescriptor pd : Introspector.getBeanInfo(Foo.class).getPropertyDescriptors()) {

if (pd.getReadMethod() != null && !"class".equals(pd.getName()))

System.out.println(pd.getReadMethod().invoke(foo));

}

请注意,您可以自己创建BeanInfo或PropertyDescriptor实例,即不使用Introspector。但是,Introspector在内部执行一些缓存,这通常是一个Good Thing(tm)。如果你快乐没有缓存,你甚至可以去

// TODO check for non-existing readMethod

Object value = new PropertyDescriptor("name", Person.class).getReadMethod().invoke(person);

但是,有很多库来扩展和简化java.beans API。 Commons BeanUtils是一个众所周知的例子。在那里,你只要做:

Object value = PropertyUtils.getProperty(person, "name");

BeanUtils自带了其他方便的东西。即即时值转换(对象到字符串,字符串到对象),以简化来自用户输入的属性设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值