マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

XmlAdapterを使いたくなかったので

APIドキュメントにJAXB使ってインスタンス変数にMapを持つクラスをXML表現で保存したいときはXmlAdapterを使えと書いてあった。でもマップの値にマップのキーを含むクラスを置いた場合は下のようにできるよなぁ。(以下はTreeMap型の変数studentMapを変換する場合)

@XmlElement(name="学生")
void setStudentList(List<Student> studentList){
    studentMap.clear();

    for(Student student : studentList)
        studentMap.put(student.getID(), student);
}

List<Student> getStudentList(){
    return new ArrayList<Student>(studentMap.values());
}

XmlAdapter使った方がいいのだろうか?