- 浏览: 387847 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Nabulio:
写的详细,特殊语法学习到了
jdk1.5-1.9新特性 -
wooddawn:
您好,最近在做个足球数据库系统,用到了betbrain的数据表 ...
javascript深入理解js闭包 -
lwpan:
很受启发 update也可以
mysql 的delete from 子查询限制 -
wuliaolll:
不错,总算找到原因了
mysql 的delete from 子查询限制
类如下:
在bookinfo中的publishdate是一个date对象,在用XStream做转换的时,由于XStream自带的DateConverter 不能转换形如“2010-10-07”这样的日期格式,只能自定义一个转换器
最后在程序中注册构造的转换器。。。。
同样的,在从XML向java对象转换时,如果Long对应的是空字符串,Xstream也会报错,例如,XML文件中如果quantityperpackage的值为空,则转换为Long时会报错,则,同样的编写转换器,在转换器中判断,如果XML中对应的为空,则让Long等于null。
对象的转换器如下:
同样在程序中注册构造的转换器。。。。
public class bookinfo implements java.io.Serializable { private Long id; //Fields private java.lang.Long bsno; private java.lang.String bookname; private java.lang.String isbn; private java.lang.String booktype; private java.lang.String author; private java.util.Date publishdate; private java.lang.Long quantityperpackage; private java.lang.Long height; }
在bookinfo中的publishdate是一个date对象,在用XStream做转换的时,由于XStream自带的DateConverter 不能转换形如“2010-10-07”这样的日期格式,只能自定义一个转换器
public class DateConverter implements Converter { @Override public boolean canConvert(Class arg0) { return Date.class == arg0; } @Override public void marshal(Object arg0, HierarchicalStreamWriter arg1, MarshallingContext arg2) { } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { GregorianCalendar calendar = new GregorianCalendar(); SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd"); //格式化当前系统日期 try { calendar.setTime(dateFm.parse(reader.getValue())); } catch (ParseException e) { throw new ConversionException(e.getMessage(), e); } return calendar.getTime(); } }
最后在程序中注册构造的转换器。。。。
XStream xstream = new XStream(new DomDriver()); xstream.registerConverter(new DateConverter());
同样的,在从XML向java对象转换时,如果Long对应的是空字符串,Xstream也会报错,例如,XML文件中如果quantityperpackage的值为空,则转换为Long时会报错,则,同样的编写转换器,在转换器中判断,如果XML中对应的为空,则让Long等于null。
对象的转换器如下:
public class LongConverter implements Converter { @Override public boolean canConvert(Class arg0) { return Long.class == arg0; } @Override public void marshal(Object arg0, HierarchicalStreamWriter arg1, MarshallingContext arg2) { } @Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext arg1) { Long longnum = new Long("1"); System.out.println(reader.getValue()); if("".equals(reader.getValue())) { System.out.println("long is null"); longnum = null; return longnum; } else{ longnum = longnum.valueOf(reader.getValue()); System.out.println("long is not null"); return longnum; } } }
同样在程序中注册构造的转换器。。。。
XStream xstream = new XStream(new DomDriver()); xstream.registerConverter(new LongConverter());
发表评论
-
将json格式的字符数组转为List对象
2015-08-10 15:18 899使用的是json-lib.jar包 将json格式的字符数组 ... -
用httpPost对JSON发送和接收的例子
2015-08-10 11:16 1096HTTPPost发送JSON: private static ... -
zookeeper适用场景:zookeeper解决了哪些问题
2015-07-31 18:01 752问题导读: 1.master挂机 ... -
java泛型
2015-07-29 10:48 762什么是泛型? 泛型(Ge ... -
Java线程Dump分析工具--jstack
2015-06-23 11:09 710jstack用于打印出给定的java进程ID或core fil ... -
什么是spark?
2015-04-10 09:37 485关于Spark: Spark是UC Berkeley AM ... -
dubbo 教程
2015-04-09 19:21 771先给出阿里巴巴dubbo的 ... -
jre/bin目录下面工具说明
2015-03-20 16:45 634jre/bin目录下面工具说明 ... -
JVM系列三:JVM参数设置、分析
2015-01-30 11:18 692不管是YGC还 ... -
jstat使用
2015-01-27 11:11 674jstat 1. jstat -gc pid ... -
查看java堆栈情况(cpu占用过高)
2015-01-27 11:10 7361. 确定占用cpu高的线程id: 方法一: 直接使用 ps ... -
慎用ArrayList的contains方法,使用HashSet的contains方法代替
2015-01-20 14:14 1141在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始 ... -
Java虚拟机工作原理详解
2015-01-16 10:00 716一、类加载器首先来 ... -
jdk1.5-1.9新特性
2014-11-11 10:22 83091.51.自动装箱与拆箱:2.枚举(常用来设计单例模式 ... -
java动态代理(JDK和cglib)
2014-09-24 15:51 471JAVA的动态代理 代理模式 代理模式是常用的java设计 ... -
Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM)
2014-09-24 15:45 691class文件简介及加载 Java编译器编译 ... -
怎么用github下载资源
2014-09-24 11:18 4501、下载github:到http://windows. ... -
maven项目时jar包没有到lib目录下
2014-09-01 20:05 2551在建项目时路径都设置好了,为什么在eclipse中运行mav ... -
使用并行计算大幅提升递归算法效率
2014-08-27 15:04 603前言: 无论什么样的 ... -
JAVA 实现FTP
2014-08-22 14:41 701一个JAVA 实现FTP功能的代码,包括了服务器的设置模块, ...
相关推荐
标题提到的“XStream的Date转换 @XStreamConverter DateConverter”主要涉及两个核心概念:XStream的转换器(Converter)和`@XStreamConverter`注解。转换器是XStream的核心机制之一,它负责将Java对象转化为XML元素...
import com.thoughtworks.xstream.converters.Converter; import com.thoughtworks.xstream.converters.MarshallingContext; import com.thoughtworks.xstream.converters.UnmarshallingContext; import ...
return type.equals(Date.class); } // 实现read和write方法... } ``` 然后注册这个转换器: ```java xstream.registerConverter(new CustomDateConverter()); ``` **6. 性能优化** 对于大量数据操作,性能...
XStream提供了自动类型转换机制,允许对象中的简单类型(如Integer、Date等)直接转换为对应的XML表示。对于复杂类型,可以通过注册转换器(Converter)进行定制化处理。 **五、安全与序列化策略** 在处理不受信任...
通过实现`com.thoughtworks.xstream.converters.Converter`接口,我们可以创建自己的转换器。例如,为日期对象创建转换器: ```java import java.text.SimpleDateFormat; import java.util.Date; import ...
要创建一个自定义转换器,你需要继承XStream的Converter或HierarchicalStreamConverter接口,并实现其必要的方法。例如,如果你有一个Date类型的字段,想要将其以自定义格式输出,你可以创建一个LocalConverter并...
Xstream内建了大量常见的Java类型转换器,如String、Integer、Date等,并且允许开发者自定义转换器以处理特殊类型的数据。 使用Xstream进行XML和对象转换的步骤大致如下: 1. 引入依赖:首先在项目中引入Xstream库...
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................
Not Using Commons Logging ................................................................... 12 Using SLF4J ..............................................................................................