5

我刚刚注意到 java.beans.Introspector getBeanInfo 没有获取任何超级接口的属性。例子:

public interface Person {
    String getName();
}
public interface Employee extends Person {
    int getSalary();
}

即使 name 是从 Person 继承的,对 Employee 进行内省也只会产生薪水。

为什么是这样?我宁愿不必使用反射来获取所有吸气剂。

4

4 回答 4

3

Sun bug java.beans.Introspector does not work for interfaces中介绍了这个问题

于 2009-05-15T07:38:58.773 回答
3

正如Phil所写,Java VM 不支持开箱即用。我也需要这个并实现了一个帮助类作为Diergo Utils 1.5的一部分。

于 2011-03-30T08:50:14.200 回答
1

尝试使用

public static BeanInfo getBeanInfo(Class<?> beanClass, Introspector.USE_ALL_BEANINFO);

看看这是否会产生您正在寻找的结果。

于 2008-10-09T04:47:17.340 回答
0

在这种情况下,您应该编写一个自定义 BeanInfo 类。

于 2008-10-12T23:45:26.187 回答