public static T fromByteArray()

in serialization/src/main/java/com/twitter/serial/util/SerializableUtils.java [79:111]


    public static <T> T fromByteArray(@Nullable byte[] bytes, @Nullable final Map<Long, Class<?>> classMapping)
            throws IOException, ClassNotFoundException {
        if (bytes == null || bytes.length == 0) {
            return null;
        }
        final ByteArrayInputStream byteStream = new ByteArrayInputStream(bytes);
        ObjectInputStream objectStream = null;
        try {
            if (classMapping == null) {
                objectStream = new ObjectInputStream(byteStream);
            } else {
                objectStream = new ObjectInputStream(byteStream) {
                    @Override
                    @NotNull
                    protected Class<?> resolveClass(@NotNull ObjectStreamClass osClass)
                            throws IOException, ClassNotFoundException {
                        final Class<?> resolvedClass = classMapping.get(osClass.getSerialVersionUID());
                        if (resolvedClass != null) {
                            return resolvedClass;
                        }
                        return super.resolveClass(osClass);
                    }
                };
            }
            final T item = (T) objectStream.readObject();
            return item;
        } catch (IOException | ClassNotFoundException | IllegalStateException e) {
            throw e;
        } finally {
            InternalSerialUtils.closeSilently(objectStream);
            InternalSerialUtils.closeSilently(byteStream);
        }
    }