为了账号安全,请及时绑定邮箱和手机立即绑定

我已用dom4J解析好了xml 接下来我要用反射将其放入实体类输出 该如何写?刚学反射的萌新求教

解析代码:

package com.xml;



import java.io.File;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;


import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;



public class Dom4j2 {


private static Map<String,String> map=new HashMap<String,String>();

public static Map<String,String> parseXml(File filePath)throws DocumentException{

Map<String,String>mapEle=new HashMap<String,String>();

SAXReader reader=new SAXReader();

Document document=reader.read(filePath);

Element root=document.getRootElement();

List<Element>elementList=root.elements();

  Iterator<Element> it=elementList.iterator();

  while(it.hasNext()){

  Element element=it.next();

  mapEle=printEle(element);

  }

return mapEle;

}

private static Map<String,String> printEle(Element ele) {

if(ele.elements().size()==0){

Element name=ele.getParent();

System.out.println(name.attributeValue("name")+"="+ele.getText());

   map.put(ele.getParent().getName(), ele.getText());

   System.out.println("\t");

}else{

List<Element>elementList=ele.elements();

Iterator<Element>it=elementList.iterator();

while(it.hasNext()){

printEle(it.next());

}

}

return map;

}

/**

* @param args

*/

public static void main(String[] args) {


File file =new File("src/res/peopleList.xml");

Map<String,String> mapELeList=new HashMap<String,String>();

try{

mapELeList=Dom4j2.parseXml(file);

Iterator<java.util.Map.Entry<String,String>> it=mapELeList.entrySet().iterator();

while(it.hasNext()){

java.util.Map.Entry<String,String> entry=it.next();

System.out.println(entry.getKey()+".."+entry.getValue());

}

}catch (DocumentException e) {

e.printStackTrace();

}

}


}

实体类

package com.xml;


public class People {

   private String position;

   private String name;

   private String FullName;

   private String dept;

   private String role;

   private String duty;

   private String wkgp;

public String getPosition() {

return position;

}

public void setPosition(String position) {

this.position = position;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getFullName() {

return FullName;

}

public void setFullName(String fullName) {

FullName = fullName;

}

public String getDept() {

return dept;

}

public void setDept(String dept) {

this.dept = dept;

}

public String getRole() {

return role;

}

public void setRole(String role) {

this.role = role;

}

public String getDuty() {

return duty;

}

public void setDuty(String duty) {

this.duty = duty;

}

public String getWkgp() {

return wkgp;

}

public void setWkgp(String wkgp) {

this.wkgp = wkgp;

}

@Override   

public String toString(){ 

 return "people[position="+position+",name="+name+",FullName="+FullName+",dept="+dept+",role="+role+",duty="+duty+"]"+"\n";

}

}


正在回答

2 回答

是的,你既然想用反射注入实体,那么就可以获取反射的构造方法,调用就行。这算是一种方法,然后解析XML就是属于另外的一个功能

0 回复 有任何疑惑可以回复我~
#1

qq_飞翔的勇气_0 提问者

非常感谢!
2018-08-28 回复 有任何疑惑可以回复我~
#2

qq_飞翔的勇气_0 提问者

老哥,能不能来点代码例子
2018-08-28 回复 有任何疑惑可以回复我~

你完全可以考虑用反射获取实体对象的构造方法,然后通过反射调用实体对象的构造方法,将参数传入到实体对象中

0 回复 有任何疑惑可以回复我~
#1

qq_飞翔的勇气_0 提问者

意思就是解析和反射一起进行?
2018-08-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
反射——Java高级开发必须懂的
  • 参与学习       151427    人
  • 解答问题       335    个

反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础

进入课程

我已用dom4J解析好了xml 接下来我要用反射将其放入实体类输出 该如何写?刚学反射的萌新求教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信