Question

In Jodd BeanUtil class does not have a method that will copy data from one object to another, i.e. in apache commons BeanUtils class there is a method copyProperties that will copy data from one object to another.

In Jodd we have to pass the name of the field and its value. If there are like 20+ fields do we have to do this manually for all the 20 fields or is there a better way of doing it using Jodd BeanUtil.

Was it helpful?

Solution

Actually, there is such tool in Jodd - its just in different class: BeanCopy (javadoc). This class offers some more control over copy process, like including/exluding some properties and so on. It was too big to put all this functionality in the BeanUtil :)

Take a look at the test sources, you will find many examples there. Here are some quick examples:

BeanCopy.beans(src, dest).copy();
BeanCopy.beans(src, dest).include("fooInteger", "fooLong").copy();
BeanCopy.beans(fooBean, dest).includeAs(FooBeanString.class).copy();
BeanCopy.beans(src, dest).declared(true).copy();

and so on.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top