开发者

can beanutil get the property of one field with its native type

Hi: I am using BeanUtil to get the properties of some bean,then put them to map. However I found that the getProperty() can only return the string value,I wonder if it can return the native(original) type?

For example:

Bean:

public class Entity {
 private String  name;
 private int   age;
 private List<Date> childs = new ArrayList<Date>();

 public Entity(String name, int age, List<Date> childs) {
  this.name = name;
  this.age = age;
  this.childs = childs;
 }

 public static Entity newInstance() {
  List<Date> list = new ArrayList<Date>();
  list.add(new Date());
  list.add(new Date());
  return new Entity("Beanutil", 23, list);
 }
 //the getter and setter for all the fields
}

Then I want to get some field property of it,and I do not exactly know which fields are requried,so I use it this way:

public class BeanUtilMain {
 public static void main(String[] args){
  String[] requestPro={"name","childs"}; //this field is specified by clien
  Map<String, Object> map=new HashMap<String, Object>();
  Entity en=Entity.newInstance();
  for(String p:requestPro){
   map.put(p, BeanUtils.getProperty(en, p));
  }
  System.out.println(map);
 }
}

Then the map is:

{开发者_如何学Cname=beanutil, childs=Wed Dec 01 12:24:37 CST 2010}

The type of "childs" field is java.util.List,but in the example, it is converted to java.lang.String.

I have to hold the orignal type of the fields in the map.

Any ideas?


You can use PropertyUtils.getProperty(Object, String) to accomplish exactly this. It returns the value of the field with no type conversion.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜