JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

程序中简单使用

/**

* Created by lv on 2016/4/3.

*/

public class Person {

private String name;

private LocalDate birthday;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

//注意,此处使用自定义适配器来解析date类型的字段

@XmlJavaTypeAdapter(LocalDateAdapter.class)

public LocalDate getBirthday() {

return birthday;

}

public void setBirthday(LocalDate birthday) {

this.birthday = birthday;

}

}

@XmlRootElement(name = "persons")

public class PersonListWrapper {

private List persons;

@XmlElement(name = "person")

public List getPersons() {

return persons;

}

public void setPersons(List persons) {

this.persons = persons;

}

}

//定义适配器

/**

* Created by lv on 2016/4/3.

*/

public class LocalDateAdapter extends XmlAdapter{

@Override

public LocalDate unmarshal(String v) throws Exception {

return LocalDate.parse(v);

}

@Override

public String marshal(LocalDate v) throws Exception {

return v.toString();

}

}

程序中使用:

/**

* 从xml文件中加载数据

* @param file

*/

public void loadPersonDataFromFile(File file) {

try {

JAXBContext jaxbContext = JAXBContext.newInstance(PersonListWrapper.class);

Unmarshaller um = jaxbContext.createUnmarshaller();

PersonListWrapper wrapper = (PersonListWrapper) um.unmarshal(file);

} catch (JAXBException e) {

e.printStackTrace();

}

}

/**

* 保存数据到xml文件中

* @param file

*/

public void savePersonDataToFile(File file){

try {

JAXBContext context = JAXBContext

.newInstance(PersonListWrapper.class);

Marshaller m = context.createMarshaller();

m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

PersonListWrapper wrapper = new PersonListWrapper();

wrapper.setPersons(personData);

m.marshal(wrapper, file);

} catch (JAXBException e) {

e.printStackTrace();

}

}

java方便适配器,JAXB简单自定义适配器以及简单使用相关推荐

  1. 带有自定义适配器示例教程的Android ListView

    In this tutorial we'll use a CustomAdapter that populates the custom rows of the Android ListView wi ...

  2. Android自定义适配器

    文章目录 一.案例演示 1.activity.xml 整体布局页面 2.item_list.xml 列表项布局 二.普通适配器(SimpleAdapater) 1.MainActivity.java ...

  3. 【RecyclerView】 一、RecyclerView 最基本用法 ( 添加支持库 | 设置布局文件 | 自定义适配器 )

    文章目录 一.添加支持库 二.布局文件中使用 RecyclerView 三.自定义适配器 四.RecyclerView 设置流程 五.RecyclerView 完整 Java 代码示例 一.添加支持库 ...

  4. android 之自定义适配器(重写的getView()方法中convertView元素的妙用)一个实例

    实现效果: 主要还是ListView的优化: 基本思路: <1>使用自定义适配器完成操作 <2>将listView进行优化处理 /*  //ListView完成了重用条目的优化 ...

  5. java中接口适配器实现,12.1.8 Java中的应用-AWT事件适配器(接口的适配器模式)...

    12.1.8  Java中的应用-AWT事件适配器(接口的适配器模式) 从以上的学习我们已经了解到,基于接口的适配器模式是采用抽象化接口的方式,来达到节省接口函数的目的,这一特性特别适合于Java A ...

  6. ViewPager通过自定义适配器MyPagerAdapter实现界面导航(上标题)

    效果图: 一.这里是实现四个界面的左右拖动: VIewPager资源的四个VIew.xmlwen文件,这里只是简易事件四个界面 演示其中一个代码: view1.xml <?xml version ...

  7. 自定义适配器(Adapter)的使用

    在实际应用中常常需要用到自定义的适配器来显示视图比如qq好友列表等等, 对于这样的视图需求我们可以简单分析下所需要的内容.首先这个界面需要一个ListView.而每一个item需要有ImageView ...

  8. XamarinAndroid组件教程RecylerView自定义适配器动画

    XamarinAndroid组件教程RecylerView自定义适配器动画 如果RecyclerViewAnimators.Adapters命名空间中没有所需要的适配器动画,开发者可以自定义动画.此时 ...

  9. java程序设计颜志军_JSP 自定义标签之一 简单实例

    在JSP中使用自定义标签可以达到这样的目的,事实上,我们所熟知的各类框架基本上都是通过自定义标签的形式来实现的. 通过使用自定义标签,我们可以将实现复杂的逻辑在页面用简单的标签来加以展示.下面我们来实 ...

最新文章

  1. 飞桨领航团 x Datawhale联合Meetup来了!杭州的小伙伴可以见面了!
  2. Vue添加新的响应式属性
  3. SAP Spartacus B2B table的配置信息从哪里来?
  4. 程序员小哥月入5万,却被丈母娘拒绝,丈母娘一番话让小哥很尴尬
  5. 突击计划——求数列之和
  6. 不用游标遍历数据库执行脚本
  7. 【剑指 offer】(48)—— 不能被继承的类
  8. java session超时判断_详解SpringBoot中Session超时原理说明
  9. 水星逆行对股市涨跌的实证检验
  10. 基于LSTM + keras 的诗歌生成器
  11. Template.js
  12. 在电商行业拼杀之外,三大电商又在其他行业展开了厮杀
  13. cpu中计算机的主要功能,cpu主要功能详解介绍
  14. 《标题党》自我修炼的10个秘籍
  15. FreeType解析矢量字体存在的问题以及优化技巧
  16. 供应原位催化固体碳源制备石墨烯/铜复合材料 锂离子电池石墨烯导电剂 石墨烯/镍基复合材料 石墨烯复合膜 石墨烯-铝基纳米叠层复合材料 磺化、胺化氧化石墨烯(GO) 石墨烯基光催化复合材料 石墨烯纳米片
  17. 2020连信活号技术_连信如何能注册出活号,连信怎么判断活号
  18. 选举投票制作制作一个投票链接制作步骤在线制作投票
  19. 手游上线流程(干货分享)
  20. 绕过Windows正版验证新方法

热门文章

  1. NodeJS API简介
  2. 想在小程序上“飙车”?特斯拉小程序做到了
  3. Android L 仍需改善的三个问题
  4. 第七届杭州云栖大会召开 阿里云在人工智能领域发力
  5. C++在构造函数中调用构造函数
  6. CentOS5.5下NIS配置
  7. 每次输出日志前需要判断日志的级别吗?
  8. vector机器人 WHAT DO I USE THE VECTOR APP FOR? 我使用 VECTOR 应用程序做什么?
  9. golang 获取 命令行参数
  10. golang x509包 数字证书相关介绍