欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

由wsdl生成的java vo类不适合做普通java vo 博客分类: CXF/WebService wsdlwebservicerpcwsdl to java classvo 

程序员文章站 2024-03-16 17:36:28
...
开发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 集合类不支持协变。