【发布时间】:2010-12-24 02:36:29
【问题描述】:
所以我有一类这样的重载方法:
class Foo {
public void test(Object value) {
...
}
public void test(String value) {
...
}
}
我需要根据 bean 的类型将 bean 的属性值传递给这些方法之一,但直到运行时我才知道实际的属性类型。例如
public void run(Object bean, String propertyName) {
Foo foo = new Foo();
foo.test(PropertyUtils.getProperty(bean, propertyName));
}
顺便说一句,PropertyUtils.getProperty() 是一个帮助方法,它返回 bean 上指定属性的值。 PropertyUtils.getProperty() 返回一个 Object,因此 test(Object value) 将始终被调用,而实际的属性类型将被忽略。
我可以在运行时找出属性类型,即使它的值为空。 Java中有动态转换之类的东西吗?如果没有,有没有办法调用具有正确参数类型的重载方法?
【问题讨论】:
-
“动态转换”的意思是“动态重载解析”,对吧?
-
@Lambert 没错。
标签: java reflection