通用的序列化和反序列化器实现
序列化器接口:
public interface Serializer { /** * 序列化 * * @param object * @return * @param <T> * @throws IOException */ <T> byte[] serialize(T object) throws IOException; /** * 反序列化 * * @param bytes * @param type * @return * @param <T> * @throws IOException */ <T> T deserialize(byte[] bytes, Class<T> type) throws IOException; }
接口的实现:
public class JdkSerializer implements Serializer{ /** * 序列化 * * @param object * @return * @throws IOException */ @Override public <T> byte[] serialize(T object) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(object); objectOutputStream.close(); return outputStream.toByteArray(); } /** * 反序列化 * * @param bytes * @param type * @return * @throws IOException */ @Override public <T> T deserialize(byte[] bytes, Class<T> type) throws IOException { ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); try { return (T) objectInputStream.readObject(); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } finally { objectInputStream.close(); } } }
__EOF__

本文作者:techgy
本文链接:https://www.cnblogs.com/techgy/p/18269228.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/techgy/p/18269228.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2023-06-26 mac电脑安装软件报错“软件已经损坏”的解决方案