我知道如何通过Class.forName()和Field []访问私有字段。 现在我通过BeanInfo Interface尝试同样的东西。
我的所作所为。
通过Class.forName()
BeanInfo info = Introspector.getBeanInfo(Class) - 在这里,我可以看到'org.owls.anno.vo.Target'。
通过语法获取元素。
for(PropertyDescriptor pd:info.getPropertyDescriptors()){ log.info(pd.getName()); log.info(pd.getDisplayName()); log.info(pd.getPropertyType()); }
我期待字段名称列表(msg,open_msg),但它打印'class.java.lang.Class'。
目标类在这里
package org.owls.anno.vo;
import org.owls.anno.SimpleAnnotation;
@SimpleAnnotation("Add missing attributes")
public class Target {
private String msg;
public String open_msg;
public Target(String msg) {
super();
this.msg = msg;
}
@Override
public String toString() {
return "Target [msg=" + msg + "]";
}
};
感谢答案:D
答案 0 :(得分:1)
你的类不是bean:没有访问者(getter和/或setter)......除了getClass()
!