请教一个问题 dubbo-go作为consumer,在使用泛型注册pojo时,多次注册时,后续注册会被第一次注册覆盖(因为Javaclassname都是泛型的classname), 比如: hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO1]{}) // 方式二 hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO2]{}) //
类似场景有一些解决方案吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你好,Dubbo-go作为consumer,使用泛型注册POJO时,多次注册时,后续注册会被第一次注册覆盖的问题,可以尝试以下两种解决方案:
使用不同的类型参数或类型别名:可以将相同的泛型类使用不同的类型参数或类型别名进行区分,以避免注册时的重复问题。例如: hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO1]{}) // 注册类型为response.ResponseDTO1的DataResult hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO2]{}) // 注册类型为response.ResponseDTO2的DataResult
使用不同的类名:可以为不同的泛型类使用不同的类名,以避免注册时的重复问题。例如: hessian.RegisterPOJOWithName(&response.DataResult[response.ResponseDTO1]{}, "DataResult1") // 注册类型为response.ResponseDTO1的DataResult,命名为DataResult1 hessian.RegisterPOJOWithName(&response.DataResult[response.ResponseDTO2]{}, "DataResult2") // 注册类型为response.ResponseDTO2的DataResult,命名为DataResult2
以上两种方案都可以避免注册时的重复问题,具体可以根据实际情况选择使用。需要注意的是,如果使用了不同的类型参数或类型别名或类名,需要在服务端进行相应的处理,以确保服务端能够正确解析接收到的请求。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。