请教一个问题 dubbo-go作为consumer,在使用泛型注册pojo时,多次注册时,后续注册?

请教一个问题 dubbo-go作为consumer,在使用泛型注册pojo时,多次注册时,后续注册会被第一次注册覆盖(因为Javaclassname都是泛型的classname), 比如: hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO1]{}) // 方式二 hessian.RegisterPOJO(&response.DataResult[response.ResponseDTO2]{}) //

类似场景有一些解决方案吗?

展开
收起
真的很搞笑 2023-05-23 19:51:51 133 分享 版权
1 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    你好,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

    以上两种方案都可以避免注册时的重复问题,具体可以根据实际情况选择使用。需要注意的是,如果使用了不同的类型参数或类型别名或类名,需要在服务端进行相应的处理,以确保服务端能够正确解析接收到的请求。

    2023-05-26 11:17:40
    赞同 展开评论

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
还有其他疑问?
咨询AI助理