JAVA-使用反射为任意对象生成XML
来源:互联网 发布:二维数组定义 编辑:程序博客网 时间:2024/06/16 12:11
提示
目前只支持基本类型和封装类型
package ztf.question1;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileWriter;public class Application { //存在问题,没有模仿缩进 public static void main(String[] args){ Person person=new Person(); person.setName("ddd"); person.setAge(23); Address address=new Address("chonqqing","Hong Guang Street"); person.setAddress(address); System.out.println(ObjectToXml.writeXML(person.getClass(),person)); }}
package ztf.question1;public class Address { private String province; private String street; public Address() { } public Address(String pro,String street){ this.province=pro; this.street=street; } public String getProvince(){ return this.province; } public void setProvince(String province){ this.province=province; } public String getStreet(){ return this.street; } public void setStreet(String street){ this.street=street; }}
package ztf.question1;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileWriter;import java.lang.reflect.Field;import java.lang.reflect.Method;public class ObjectToXml { public static String writeXML(Class class1,Object obj){ StringBuilder stringBuilder=new StringBuilder(); try{ stringBuilder.append("<"+class1.getName()+">\n"); Field[] fields = class1.getDeclaredFields(); for(Field field:fields) { field.setAccessible(true); Class<?> type = field.getType(); if(type.isPrimitive()||type==String.class) { stringBuilder.append("<"+field.getName()+">"); Method m = (Method) class1.getMethod( "get" + getMethodName(field.getName())); stringBuilder.append(m.invoke(obj)); stringBuilder.append("</"+field.getName()+">\n"); }else { Method m = (Method) class1.getMethod( "get" + type.getSimpleName()); stringBuilder.append(writeXML(field.getType(),m.invoke(obj))); } } stringBuilder.append("</"+class1.getName()+">\n"); return stringBuilder.toString(); }catch(Exception e){ e.printStackTrace(); } return null; } private static String getMethodName(String name) { // TODO Auto-generated method stub return name.substring(0, 1).toUpperCase() + name.substring(1); }}
package ztf.question1;public class Person { private String name; private int age; private Address address; public Person(){ this.name=""; } public String getName(){ return this.name; } public void setName(String name){ this.name=name; } public int getAge(){ return this.age; } public void setAge(int age){ this.age=age; } public Address getAddress(){ return this.address; } public void setAddress(Address address){ this.address=address; }}
阅读全文
0 0
- JAVA-使用反射为任意对象生成XML
- java使用反射将json对象转换为java对象
- 利用java反射机制将任意对象的转换为map存储
- java反射机制生成对象
- java利用dom4j对输入的任意对象生成xml文件
- 黑马程序员-Java中使用反射生成并操作对象
- Java 使用反射和Poi将任意类导出为Excel
- JAVAX的使用(Xml和Java对象间的任意转换)
- 使用Java反射创建XML
- java对象生成xml文件
- 使用org.dom4j将java对象转化为xml
- 使用org.dom4j将java对象转化为xml
- Java学习 之 获取Class对象、使用反射生成并操作对象
- 使用反射生成并操作对象
- java解析XML为对象
- xml映射为java对象
- 使用java 反射 copy 对象
- java使用反射创建对象
- JAVA-任意对象转换成JSON,json转换成指定对象
- C#调用DLL方案收集
- 在有序但含有None的数组中查找字符串 Python 版
- PAT 乙级 1001——1005 C语言
- 深度学习硬件(GPU、FPGA、ASIC、DSP)
- JAVA-使用反射为任意对象生成XML
- (六)java并发编程--synchronized同步块
- jstat命令详解
- ##Win7下Cmake编译配置opencv3.3+contrib+cuda7.5
- Git使用简介二(入门级)
- 优先队列与堆排序
- 欢迎使用CSDN-markdown编辑器
- JAVA-XML转换为特定对象
- 六周四次课(11月23日) 12.12/12.13 删除数据 12.14 更改数据 12.15 索引