由wsdl生成的java vo类不适合做普通java vo

开发java webservice项目时,如果我们通过SOAP协议来输入输出,我们会利用工具从wsdl文件生成webservice的client端类,但是这里面生成的java data model类却不适合做为项目中的普通java vo类来使用,当然有一中情况例外,如果这个自动生成的类里面的properties都是基本数据类型,就没问题,但是如果有集合类,就不行。原因如下:
1)使用了集合如List students,自动生成的类不提供setStudents方法,要想给list成员变量赋值,只能通过getStudents().add(student)方式,这样在使用时非常不方便。
2)如果用了泛型如List<T> students,那么自动生成的类使用的是List<Object>类型,这样不仅丢失了泛型编程的方式,而且List<Object>也几乎变得毫无用处,因为任何一个具体类型的List<ClassX> 都不是一个List<Object>,其中ClassX!=Object,因为java 集合类不支持协变。


你可能感兴趣的