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使った方がいいのだろうか?