package com.think.uiloader.data.cache.internal; import android.annotation.SuppressLint; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.io.Serializable; /** * Created by borney on 3/7/17. */ @SuppressLint("NewApi") public class SerializableByteMapper implements ByteMapper<Serializable> { SerializableByteMapper() { } @Override public byte[] getBytes(Serializable obj) { try (ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(bos)) { out.writeObject(obj); return bos.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return new byte[0]; } @Override public Serializable getObject(byte[] bytes) { try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(bis)) { return (Serializable) ois.readObject(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } }