apache / dubbo-hessian-lite

Hessian Lite for Apache Dubbo
Apache License 2.0
53 stars 47 forks source link

com.alibaba.com.caucho.hessian.io.HessianInput.readObject()不管什么类型读取出来的都是list #29

Open iwhalecloud-platform opened 4 years ago

iwhalecloud-platform commented 4 years ago

代码

com.alibaba.com.caucho.hessian.io.HessianInput.readObject();

if (List.class != reader.getType() && List.class.isAssignableFrom(reader.getType()))
                    return reader.readList(this, length, valueType ? expectedTypes.get(0) : null);

第一个条件:List.class != reader.getType() 读取的类型不能是List 第二个条件:List.class.isAssignableFrom(reader.getType())) 判断接口类型,这里明显少了一个 感叹号。 应该加一个感叹号

!List.class.isAssignableFrom(reader.getType()))

否则永远都是list读取

 case 'V': {
                String type = readType();

如果type为空是否要默认list,否则读取的是map序列化

lucky-xin commented 2 years ago

这个是去年提的,我现在看源码还是一样呀