反射和泛型基础

泛型类

在类定义的时候,在后面加上,在下面的成员中(属性,方法)的E在用户对E赋值的时候就会变成相应的数据类型。
只在编译时有效

静态泛型方法

public static  T show(T t){
    return t;
}

dom4j

优点:
1.将xml元素封装成对象使用

缺点:
1.速度相对于sax慢
2.可能出现内存溢出情况

使用

-导包
-创建SAXReader对象
-通过SAXReader对象得到所有节点
-得到根节点
-得到子节点集合遍历

解析XML

        SAXReader reader = new SAXReader();
        Document doc = reader.read("book.xml");
        Element ele = doc.getRootElement();
        List elements = ele.elements();
        for (Element element : elements) {
            List elements2 = element.elements();
            for (Element element3 : elements2) {
                System.out.println(element3.getName()+":"+element3.getStringValue());
            }
        }

将文件写入XML

    public static void main(String[] args) throws IOException {
        File file = new File("book2.xml");
        Document doc = DocumentHelper.createDocument();
        Element root = doc.addElement("books");
        Element book = root.addElement("book");
        Element title = book.addElement("title");
        title.setText("磊少自传");  
        write(file,doc);    
    }
  public static void write(File file,Document doc){
                                           //封装写入文件的方法
    OutputFormat of = OutputFormat.createPrettyPrint();
        of.setEncoding("GBK");
        XMLWriter writer = new XMLWriter(new FileWriter(file), of);
        writer.write(doc);
        writer.flush();
        writer.close();
  }

删除XML文件

     public static void main(String[] args) throws DocumentException, IOException {
        SAXReader reader = new SAXReader();
        Document doc = reader.read("book.xml");//解析xml文件得到所有文件的元素
        Element books = doc.getRootElement();//得到根节点
        List elements = books.elements();//得到所有子节点
        for (Element element : elements) {
            Attribute attribute = element.attribute("id");//得到子节点
            if(attribute.getText().equals("1")){
                books.remove(element);//通过根节点删除子节点
            }
        }
        File file=new File("book.xml");
        Demo2.write(file, doc);
}

你可能感兴趣的:(反射和泛型基础)