最近要写一个外部调用的webservice接口,入参和出参都是xml格式,根据不同的type查询不同的集合返回,代码如下:

首先配置webservice接口的xml文件

然后写接口类

然后是实现类

实现类中最主要的是根据不同的type查询出结果然后分装成返回xml

封装的返回方法运用了泛型,可以传入不同的对象集合

public <T> String getDetailXml(String retCode,List<T> list){
Document doc=DocumentHelper.createDocument();
Element root=DocumentHelper.createElement("root");

Element resultInfo=root.addElement("resultInfo");
Element returnCode = resultInfo.addElement("returnCode");
returnCode.addText(retCode);
//获取集合迭代器
Iterator<T> it = list.iterator();
//循环迭代
while (it.hasNext()) {
Element returnMsg = resultInfo.addElement("returnMsg");
//获取集合里的对象
T t = (T) it.next();
//获得对象的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
Field[] fields = t.getClass().getDeclaredFields();
for (short i = 0; i < fields.length; i++) {
Field field = fields[i];
//获取属性声明时名字
String fieldName = field.getName();
//拼装get方法
String getMethodName = "get"
+ fieldName.substring(0, 1).toUpperCase()
+ fieldName.substring(1);
String textValue = null;
try {
//获取对象实例
Class tCls = t.getClass();
//获得get方法类
Method getMethod = tCls.getMethod(getMethodName,
new Class[] {});
//获得属性值
Object value = getMethod.invoke(t, new Object[] {});
textValue = value.toString();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element el = returnMsg.addElement(fieldName);
el.addText(textValue);

}

}
doc.setRootElement(root);
return doc.asXML();

}

Java的反射机制不是很了解,以后会详细了解

转载于:https://www.cnblogs.com/zkdn/p/9385231.html

根据接口入参不同返回不同对象集合的方法相关推荐

  1. springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现

    转自:springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现 - 李东平|一线码农 - 博客园 (cnblogs.com) 1.背景 在实际开发中,通常来说java里面是使用驼峰的命名规 ...

  2. java值参_Java陷阱之慎用入参做返回值详解

    正常情况下,在Java中入参是不建议用做返回值的.除了造成代码不易理解.语义不清等问题外,可能还埋下了陷阱等你入坑. 问题背景 比如有这么一段代码: @Named public class AServ ...

  3. java什么时候用有参_Java有陷阱——慎用入参做返回值

    正常情况下,在Java中入参是不建议用做返回值的.除了造成代码不易理解.语义不清等问题外,可能还埋下了陷阱等你入坑. 问题背景 比如有这么一段代码: 上面代码,服务A希望调用服务B,以获取supply ...

  4. 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...

  5. 接口入参形式_花椒测试平台 接口篇

    背景 先来说说花椒测试平台的由来: 目的1,降低接口测试对测试人员代码能力的要求.测试人员只需要知道接口的url,请求参数,以什么样的格式传个服务端,接口的响应数据里需要验证哪个字段的值即可进行测试, ...

  6. java 返回值给c_Java有陷阱,用时需谨慎——慎用入参做返回值

    正常情况下,在Java中入参是不建议用做返回值的.除了造成代码不易理解.语义不清等问题外,可能还埋下了陷阱等你入坑. 问题背景 比如有这么一段代码:@Named public class AServi ...

  7. java 骗局_Java有陷阱,用时需谨慎——慎用入参做返回值

    正常情况下,在Java中入参是不建议用做返回值的.除了造成代码不易理解.语义不清等问题外,可能还埋下了陷阱等你入坑. 问题背景 比如有这么一段代码: @Named public class AServ ...

  8. Spring Boot AOP处理方法的入参和返回值

    前言 IOC和AOP是Spring 中最重要的两个模块.这里练习一下如何使用Spring Boot AOP处理方法的入参和返回值. Spring AOP的简单介绍: AOP(Aspect-Orient ...

  9. Spring AOP(获取入参和返回值)及其原理:动态代理

    此篇会先演示Spring AOP(获取入参和返回值),之后再演示AOP的原理:动态代理. Spring AOP: AOP思想: AOP(Aspect Oriented Programming),即面向 ...

最新文章

  1. python编程标准_python编程规范
  2. oracle查找重复记录
  3. 永洪Desktop自由表格间计算使用教程
  4. java实验四——找鞍点
  5. javascript函数式_如何以及为什么在现代JavaScript中使用函数式编程
  6. 用户思维模型,围绕用户核心四大模块,拉新、养熟、成交、裂变循环的效果...
  7. (pytorch-深度学习系列)网络中的网络(NiN)
  8. Unity动态对象优化
  9. php Excel工程进度管理,打造最全面的 PHPExcel 开发解决方案
  10. JavaScript学习(五十九)—原型、原型链、闭包以及闭包的不足
  11. linux互传文件nc命令
  12. arm b bl 地址无关码_海边同居有甜有虐,又一部BL日剧来了
  13. easyUI datagrid 重复发送URL请求
  14. windows 10屏蔽系统自动更新
  15. 游戏场景offset坐标系关联正六边形cube坐标系
  16. 51单片机实例学习四 128X64 液晶显示器、PS/2与单片机通信、密码锁
  17. Oracle10g SQL分页查询写法与效率比较
  18. 脑波和眼动连通性分析 python-(1)
  19. This connection has been closed
  20. ansys workbench汉化教程_FC魔法阵咕噜咕噜汉化版下载-街机魔法阵咕噜咕噜完美汉化版下载...

热门文章

  1. 阿里云高校君一岁啦!
  2. 从阿里前端工程化中台实践,看中台建设的舍与得
  3. 使用Nginx反向代理部署laravel和history模式的Vue项目[更新]
  4. 【蓝桥杯Java_C组·从零开始卷】第四节(附)、字符串常用函数
  5. linux 系统监控、诊断工具之 top 详解
  6. linux中w命令参数详解
  7. 洛谷P1006 传纸条(多维DP)
  8. 爬取及分析天猫商城冈本评论(二)数据处理
  9. Dictionary转为Model实例
  10. epoll实现压测工具