为什么hessian序列化的对象也要实现Serializable接口?

为什么hessian序列化的对象也要实现Serializable接口?

1、对于java序列化和反序列化时,必须实现Serailizeable接口,而且hessian支持多语言,对于java语言,序列化就必须得实现Serializeable接口,这也是约定俗成的事情,支持那种语言,就比如得按照那种语言的规范来开发。

2、在java里面,有些地方强制校验是否必须实现Serailizeable接口,比如hessian就有这个强制校验。

protected Serializer getDefaultSerializer(Class cl) {
        if (this._defaultSerializer != null) {
            return this._defaultSerializer;
        } else if (!Serializable.class.isAssignableFrom(cl) && !this._isAllowNonSerializable) {
            throw new IllegalStateException("Serialized class " + cl.getName() + " must implement java.io.Serializable");
        } else {
            return new JavaSerializer(cl, this._loader);
        }
    }

如果没有这个强制校验,我们可以不实现,提前时你这个类持久化数据之后,这个类之后不会修改,你可以去看看这篇文章