日期:2014-05-18  浏览次数:20720 次

类对象 适配器 spring 结贴率90% 类转换
本帖最后由 StoneBreakee 于 2013-12-19 20:17:55 编辑
要实现一个查询功能,返回的结果提供给我这个模块,因此当初这个查询功能是在我这个模块做的
方法  public  List<A> queryA(...)
对象类A 成员变量 a1 a2
现在查询的功能要由另一个模块提供,
方法 public List<B> queryB(...)
对象类B 成员变量 a1 a2(和对象类A的成员变量名相同)
现在在queryA(...)中调用queryB(...)方法,但是queryA(...)的方法返回类型还需要是List<A>
public List<A> queryA(...)
{
    List<A> listA = new ArrayList<A>();
    
    List<B> listB = queryB(...);
        .
        ?
        .
    return listA;
}
长期有效。。。

------解决方案--------------------
楼主这个不就是要把B对象的属性复制到A对象上吗,这无需要用什么适配器直接用commons-beanUtils工具包
public List<A> queryA(...)
{
    List<A> listA = new ArrayList<A>();
    
    List<B> listB = queryB(...);
    for(B b:listB){
      A a=new A();
//利用copyProperties(destObject,srcObject)就会把源对象的属性值复制到目标对象的相同属性名上
      BeanUtils.copyProperties(a,b);
      listA.add(a)
    }   
    return listA;
}