java Enum序列化问题
来源:互联网 发布:政府oa java 编辑:程序博客网 时间:2024/06/10 06:24
背景:项目中,服务器端使用JAVA开发,客户端用C#开发,客户端和服务器端通过WEBSERVICE连接,但在使用Enum(枚举)时,服务器端正确接收到信息,在信息序列化到文件时,Enum的值总是不能正确的序列化。后经多方参考,才知道要指定类型:
XMLEncoder encoder;
try {
encoder = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(Config.instance().getModuleFile(filename))));
//此处代码可以让Enum顺利的序列化,反序列化的时候不存在这个问题
encoder.setPersistenceDelegate( DBTYPE.class, new EnumPersistenceDelegate() );
encoder.setPersistenceDelegate( WEBCTRL.class, new EnumPersistenceDelegate() );
encoder.setPersistenceDelegate( METHOD.class, new EnumPersistenceDelegate() );
encoder.writeObject(webnode);
encoder.close();
return true;
} catch (Exception e) {
e.printStackTrace();
}
//EnumPersistenceDelegate.java
public class EnumPersistenceDelegate extends PersistenceDelegate {
protected boolean mutatesTo(Object oldInstance, Object newInstance) {
return oldInstance == newInstance;
}
protected Expression instantiate(Object oldInstance, Encoder out) {
Enum e = (Enum) oldInstance;
return new Expression(e, e.getClass(), "valueOf", new Object[] { e
.name() });
}
}
- java Enum序列化问题
- Enum枚举序列化JSON value to string问题
- java 序列化 问题
- java序列化问题
- Java序列化问题
- java序列化问题
- java序列化问题
- java序列化问题
- Java中Enum类型的序列化及类升级不建议用枚举的原因
- Java中Enum类型的序列化及类升级不建议用枚举的原因
- Java的序列化问题
- Java的序列化问题
- Java序列化问题总结
- Java序列化问题总结
- java中的序列化问题
- Java基础----序列化问题
- Java序列化问题总结
- 有关java序列化问题
- 声明和定义区别
- 在24位真彩色位图中插入文件并隐藏文件
- [Flex]Flex SDK 4(Gumbo)浅析ASDoc - Flash Builder 4配置篇
- C/C++内存分配
- 让List Control有Check Box 和 让List Box有Check Box
- java Enum序列化问题
- NHibernate配置文件
- SQL2005 一句话加密
- 英雄无敌Ⅲ之游戏修改器DIY
- 使用MFC提供的Http类下载和上传文件
- Asp.Net MVC網址
- 使用rsync+inotify配置触发式(实时)远程同步
- jdk卸载错误
- 重载(overload),覆盖(override),隐藏(hide)的区别