Как в Java преобразовать массив байтов в объект / byte[] → Object

Начиная с Java 7 разумнее всего использовать try-with-resources. В этом случае решение может выглядеть так:

public static Object deserialize(byte[] rawData) {


if (rawData == null) {

return null;

}


Object o = null;


try (ByteArrayInputStream bis = new ByteArrayInputStream(rawData);

ObjectInput in = new ObjectInputStream(bis)) {


o = in.readObject();


} catch (IOException | ClassNotFoundException ex) {

ex.printStackTrace();

}


return o;

}

Второй способ заключается в том, чтобы воспользоваться сторонними библиотеками:

  • например, библиотекой Commons Lang от Apache. Тогда код получается намного короче.

Object obj = SerializationUtils.deserialize(objectBytes);

  • Точно такой же код получится при использовании спринговой библиотеки SerializationUtils:

Object obj = SerializationUtils.deserialize(objectBytes);