如何通过框架调用javabeans上的get和set方法?

时间:2010-06-06 18:08:38

标签: java javabeans

如果您的bean使用getFoo方法,那么当您要求getFoo的值时,您使用的框架如何知道如何调用foo方法?这是使用反射API完成的吗?或者它是否以某种方式使用注释完成?显然我知道如何在给定属性名称的情况下派生方法,我只是不知道如何调用该方法。

2 个答案:

答案 0 :(得分:1)

Java通过方法名称约定使用“属性”。对于camelCase类型的媒体T,您应该定义public T getCamelCase()public void setCamelCase(T t)中的一个或两个。您可以使用以下代码测试bean的属性:

Introspector.getBeanInfo (bean.getClass ()).getPropertyDescriptors ();

请注意,因为属性不是第一类对象并且依赖于命名约定,所以很容易意外地破坏这种伪对象。例如。如果您定义setFoo(int)setFoo(int, boolean),则您的班级中不会有属性foo

答案 1 :(得分:0)

实际的方法调用确实是通过反射完成的。例如,您可以查看BeanUtil和更多特定MethodUtil来源。要反射调用方法,请使用

 method.invoke( bean, parameters ); 

有关示例,请参阅reflection tutorial