我有5个Web服务,A,B,C,D和E.每个都有自动生成的对象具有完全相同的结构,但具有不同的名称和不同的包.
com.ws.a.carA contains parameters and com.ws.a.wheelA
com.ws.b.carB contains parameters and com.ws.b.wheelB
com.ws.c.carC contains parameters and com.ws.c.wheelC
com.ws.d.carD contains parameters and com.ws.d.wheelD
com.ws.e.carE contains parameters and com.ws.e.wheelE
我想创建一个函数,可以将这些对象(和内轮)中的每一个转换为一个名为的对象
com.model.car,
但我不会有很多功能,如:
com.model.car convert(com.ws.a.objA obj)
com.model.car convert(com.ws.b.objB obj)
…
问题是,我无法为所有对象提供实现的通用接口,因为我不想手动更改自动生成的类(它们经常重新创建).
我需要一种方法,可能是泛型,来创建一个共同的功能
com.model.car convert(T obj)
这将适用于所有类型的汽车,但我不知道如何实施它.
解决方法:
PropertyUtils #copyProperties将值从一个对象复制到另一个对象,其中字段名称相同.因此,对于copyProperties(dest,orig),它会为两个对象中存在的所有字段调用dest.setFoo(orig.getFoo()).
BeanUtils #copyProperties也是如此,但您可以注册转换器,以便在必要时将值从String转换为Int.有许多标准转换器,但你可以注册自己的,在你的情况下com.ws.a.wheelA到com.model.wheel,或其他什么.
标签:java,generics,web-services
来源: https://codeday.me/bug/20191006/1863191.html