public static String beanListToXml(List<?> list ,Class<?> cls) throws Exception{
return beanListToXml(list, cls,"yyyy-MM-dd");
}
public static String beanListToXml(List<?> list ,Class<?> cls,String pattern) throws Exception{
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>").append("\r\n");
String className = cls.getSimpleName();
sb.append("<").append(className).append("List>").append("\r\n");
Field[] fileds = cls.getDeclaredFields();
fileds = getFileds(cls,fileds);
try {
for(int i=0;i<list.size();i++){
sb.append("<").append(className).append(">").append("\r\n");
for(int j = 0;j<fileds.length;j++){
String filedName = fileds[j].getName();
String getMethodName = "get"
+ filedName.substring(0, 1).toUpperCase()
+ filedName.substring(1);
Method getMethod = cls.getMethod(getMethodName,
new Class[] {});
Object value = getMethod.invoke(list.get(i), new Object[] {});
String textValue = "";
if (value instanceof Date) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
textValue = sdf.format((Date) value);
}else{
textValue = Tool.nvl(value);
}
sb.append("<").append(filedName).append(">");
sb.append(chargeStr(textValue));
sb.append("</").append(filedName).append(">");
sb.append("\r\n");
}
sb.append("</").append(className).append(">").append("\r\n");
}
sb.append("</").append(className).append("List>").append("\r\n");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new DataException("实体转换成xml时出错");
}
return sb.toString();
}
private static Field[] getFileds(Class<?> cls,Field[] fileds) {
// TODO Auto-generated method stub
Field[] result = null;
Class parent = cls.getSuperclass();
if(parent != null){
Field[] pfields = parent.getDeclaredFields();
result = new Field[fileds.length+pfields.length];
System.arraycopy(fileds, 0, result, 0, fileds.length);
for(int i=0;i<pfields.length;i++){
result[fileds.length+i] = pfields[i];
}
getFileds(parent, fileds);
}
return result;
}
private static String chargeStr(String str){
String result = str;
result = result.replace("<", "<");
result = result.replace(">", ">");
result = result.replace("&", "&");
result = result.replace("'", "'");
result = result.replace("\"", """);
return result;
}
分享到:
相关推荐
- JSON-lib不支持泛型,因此在Java对象中使用`List`时,不能指定具体的类型如`List<SubObject>`。在转换后,需要强转列表元素类型。 - JSON字段名与Java属性名不匹配时,可以通过`@JsonProperty`注解映射。 - `...
XStream库还支持更复杂的Java对象结构,包括集合、嵌套类和泛型等。通过合理的配置和使用,你可以轻松地处理各种复杂的转换需求。 在实际项目中,XStream通常用于处理XML配置文件,比如Spring框架中的bean配置,...
Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级...
Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级...
Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级...
Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。Java高级...
综上所述,本案例涉及了WebService接口设计、泛型的使用、XML配置和数据序列化等关键知识点,这对于任何需要通过网络交互数据的Java开发者来说都是重要的技能。通过研究提供的代码和理解其背后的原理,你可以掌握...
`json-lib`支持多种类型的Java对象,包括普通Java对象、集合类型等。 #### 三、环境准备 在使用`json-lib`之前,需要先下载并导入对应的jar包。例如,可以通过以下方式添加依赖: ```xml <!-- Maven --> ...
7. 泛型:Java泛型引入了类型参数,增强了类型安全,避免了不必要的类型转换。泛型在集合框架和自定义数据结构中广泛应用。 8. 反射:Java反射API允许程序在运行时检查和修改自身的结构和行为,这在动态配置、元...
- Java 5引入的泛型(Generic)、自动装箱拆箱等特性。 - Java 8新增的Lambda表达式和Stream API。 15. 软件开发工具和环境 - Maven、Gradle:Java项目的构建和依赖管理工具。 - Eclipse、IntelliJ IDEA:Java...
Java技术架构涵盖了广泛的领域,包括编程基础、核心API、高级特性、图形编程、网络编程、开发环境以及特定的软件工程师技能。以下是对这些知识点的详细解释: 1. **Java 开发环境**: - **JDK**:Java Development...
Java面试知识点: 1. **Java基础**: 包括数据类型、运算符、流程控制语句、数组、字符串、面向对象编程的基本概念(封装、继承、多态)。 2. **类与对象**: 对象的创建、构造器、访问修饰符、this关键字、static...
Java OOP(面向对象编程)是Java编程语言的核心特性,它允许我们以更接近现实世界的方式组织代码。在这个“javaoop复习.rar”压缩包中,虽然没有直接的标签信息,但我们可以推测它包含了一些用于复习Java OOP概念的...
泛型在Java编程中是一个强大的特性,它可以提供类型安全的集合类,允许在编译时检查类型,避免了强制类型转换。在Spring MVC和MyBatis的结合中,泛型可以用来创建通用的DAO层,减少代码的重复。例如,你可以创建一个...
1. 泛型:理解泛型的作用,学会在类、接口、方法中使用泛型,提高代码的类型安全性。 2. 注解(Annotation):了解注解的元数据功能,掌握自定义注解和处理器的编写。 3. Lambda表达式:学习函数式编程思想,利用...
4. **集合框架**:Java集合框架包括List、Set、Map接口及其实现类,如ArrayList、LinkedList、HashSet、HashMap等。理解它们的特点和使用场景,以及泛型的概念。 5. **输入输出流**:学习文件I/O操作,包括字节流和...
Java 核心编程:包括 Java 编程的两大核心功能——Java 输入/输出流和多线程,以及常用的辅助类库——实体类、集合类、正则表达式、XML 和属性文件。 B. Java 图形编程:包括 Sun 的 GUI 库 AWT(Java2D、Java...
1. **Java技术框架与体系**:本书全面展示了Java技术的框架与体系,包括但不限于Java语言的基础语法、面向对象编程、集合框架、多线程编程、网络编程、异常处理、输入/输出流、反射机制、注解、泛型、枚举、lambda...