java反射拼接字符串
我有一个java对象类似如下:
public class JavaBean{
private String b;
private String a;
// get set
...
}
现在通过以下反射方法来获得b和a的属性
...
BeanInfo beanInfo = Introspector.getBeanInfo(object.getClass());
PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
虽然拿到pds,但发现该pds里元素的排序是按照字母顺序,也就是第0个元素是a,第一个是b,想请教各位大神,这个pds数组有没可能按照代码书写的顺序来排序,即第0个为b,第1个为a?因为我需要动态生成该javabean的字符串拼接,即String s = b + a;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一,getPropertyDescriptors()获得的是类的属性,不是成员变量,所以如果你的setter不是setA(), setB(), 你的pds数组里有可能得到的不是a,b。如果要得到成员变量,应该用getFields()。另外,根据java doc,反射得到的数组是无序的,如果你需要排序,可以自己排,比如用annotation。得到数组后按照annotation排序。