码迷,mamicode.com
首页 > 其他好文 > 详细

手动添加arraylist注解类(Contact联系人对象)

时间:2017-06-30 23:58:45      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:gen   rac   class   div   核心   nbsp   attr   控制台   frame   

因为在Java核心库不支持arraylist xml直接注解,这里可以自己写个小工具类

Contact.java:

package com.newer.xml;

import java.util.ArrayList;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

// 根节点
@Root(name = "person")
public class Contact {

    @Attribute
    int id;

    @Element
    String name;

    @ElementList(inline = true, entry = "phone", required = false)
    ArrayList<String> phoneList = new ArrayList<>();

    public Contact() {
    }

    public Contact(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }

    @Override
    public String toString() {
        return "Contact [id=" + id + ", name=" + name + ", phoneList=" + phoneList + "]";
    }

}

 

工具列ContactList.java:

package com.newer.xml;

import java.util.ArrayList;

import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root;

// 注解
@Root(name = "contact-list")
public class ContactList {
    
    // 委托
    @ElementList(inline = true)
    ArrayList<Contact> contacts = new ArrayList<>();
    
    public void add(Contact c) {
        contacts.add(c);
    }
    
    public Contact get(int i) {
        return contacts.get(i);
    }

}

运行的开始Demo.java:

注意required属性设置false说明当前属性是可空的

这里先写如,然后注释,再读取,当然可以仿照案例直接写在控制台方便查看效果:

package com.newer.xml;

import java.io.File;
import java.util.ArrayList;

import org.simpleframework.xml.core.Persister;

public class Demo {

    
    public static void main(String[] args) {
        
        Persister pr = new Persister();
        
        try {
            ContactList list = pr.read(ContactList.class, new File("c.xml"));
            
            for (Contact c : list.contacts) {
                System.out.println(c);
            }
        
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
        
        
//        Contact c1 = new Contact(1, "alice");
//        c1.phoneList.add("131");
//        c1.phoneList.add("139");
//        
//        Contact c2 = new Contact(2, "bob");
//        Contact c3 = new Contact(3, "jack");
//        c3.phoneList.add("1");
//        c3.phoneList.add("2");
//        c3.phoneList.add("3");
//        c3.phoneList.add("4");
//        
//        ContactList list = new ContactList();
//        list.add(c1);
//        list.add(c2);
//        list.add(c3);
//        
//        
//        Persister pw = new Persister();
//        
//        try {
//            pw.write(list, new File("c.xml"));
//            
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
    }
}

 

手动添加arraylist注解类(Contact联系人对象)

标签:gen   rac   class   div   核心   nbsp   attr   控制台   frame   

原文地址:http://www.cnblogs.com/zhangmingzhao/p/7100902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!