锁定老帖子 主题:如何获得pojo中嵌套属性的类型
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-05-04
最后修改:2012-05-04
Class fieldClass=Class.forName(className).getField(fieldName).getType(); 就可以得到className这个类中fieldName这个属性的类型。 如Class fieldClass=Class.forName("testPackage.Dept").getField("deptName").getType(); 表示Dept.java中deptName的属性类型,其结果一定是java.lang.String 对于你那种有.的,比如dept.deptName或者user.car.factory.name这种,嵌套求解就可以了。 如 public Class getFieldType(Class objectClass,String fieldEl){ //将a.b.c.d分解成a和b.c.d int index=fieldEl.indexOf("."); String headEl=fieldEl,tailEl=null; if(index>=0){ headEl=fieldEl.subString(0,index); tailEl=fieldEl.subString(index); } //在当前objectClass中计算headEl的类型 Class result=objectClass.getField("deptName").getType(); //如果计算完成,返回结果。否则继续计算 if(tailEl==null){ return result; }else{ return getFieldType(result,tailEl); } } 测试时用 Class baseClass=Class.forName("testPackage.Dept"); System.out.println(getFieldType(baseClass,"dept.deptName")); |
|
返回顶楼 | |