为了账号安全,请及时绑定邮箱和手机立即绑定

java反射拼接字符串

java反射拼接字符串

哔哔one 2019-02-27 08:42:20
我有一个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;
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

第一,getPropertyDescriptors()获得的是类的属性,不是成员变量,所以如果你的setter不是setA(), setB(), 你的pds数组里有可能得到的不是a,b。如果要得到成员变量,应该用getFields()。另外,根据java doc,反射得到的数组是无序的,如果你需要排序,可以自己排,比如用annotation。得到数组后按照annotation排序。

public class JavaBean{
    @Order(value=1)
    private String b;
    @Order(value=2)
    private String a;
    // get set
    ...
}
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 408 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信