Java SE练习

来源:互联网 发布:中国期刊 数据库 编辑:程序博客网 时间:2024/06/08 10:49

前言:对dom4j、反射使用的一个综合练习。

一、编写XML文件

<?xml version="1.0" encoding="UTF-8"?><beans>    <student className="cn.itcast.javaeevideoday02.Student">        <name>张三</name>        <age>18</age>        <sex></sex>    </student>    <student className="cn.itcast.javaeevideoday02.Student">        <name>李四</name>        <age>20</age>        <sex></sex>    </student>    <student className="cn.itcast.javaeevideoday02.Student">        <name>王五</name>        <age>22</age>        <sex></sex>    </student></beans>

二、导入jar包
在项目下新建lib文件夹,将dom4j解析jar包复制到该路径,点击jar包右键BuildPath–>Add to buildpath

三、代码实现

package cn.itcast.javaeevideoday02;import java.lang.reflect.Array;import java.lang.reflect.Constructor;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;/** *  * @author 大家都说名字长不会被发现 * */public class SynthesisDemo {    public static void main(String[] args) throws Exception {        //创建SAXReader对象        SAXReader reader = new SAXReader();        //读取XML文件        Document document = reader.read("bean.xml");        //获取文件跟标签        Element rootElement = document.getRootElement();        //获取根标签下指定的所有子标签        List<Element> elements = rootElement.elements();        //创建集合对象        ArrayList<Student> stuLists = new ArrayList<>();        for (Element element : elements) {            //获取标签属性值            String className = element.attributeValue("className");            //获取子标签文本            String name = element.elementText("name");            String age = element.elementText("age");            String sex = element.elementText("sex");            //获取字节码文件对象            Class c = Class.forName(className);            //获取对象满参构造            Constructor constructor = c.getConstructor(String.class,int.class,String.class);            Object student = constructor.newInstance(name,Integer.valueOf(age),sex);            stuLists.add((Student)student);        }        System.out.println(stuLists);    }}
原创粉丝点击