关于工作中.net转java遇到的一个远程调用传递重复参的问题。
2024-08-26 16:09:57
工作中遇到一个很奇怪的传参问题。之前.net使用的是一个List列表,列表中有几个重复的参数。列表中使用的model类是KeyValue。
我使用java模仿其写法,传递List和KeyValue。对方提示参数格式不对。我使用java中的Map封装参数。因为Map中的Key不能重复所以查询到的信息只是所需要的信息中的一条。
.net示例代码:(只是起到一个示意作用)
public struct KeyValue<TK, TV>
{public TK Key { get; }
public TV Value { get; }
}
参数示例:
List<KeyValue<String, String>> pams = new List<KeyValue<String, String>>();
pams.Add(new KeyValue<String, String>("param1", param1));
pams.Add(new KeyValue<String, String>("param2", param2));
foreach (String param3 in Param3List.Split(new[] { ';' })){
pams.Add(new KeyValue<String, String>("param3", param3));
}
解决方法:
使用java中的 IdentityHashMap 该Map继承了AbstractMap 实现了Map接口。
最重要IdentityHashMap中的key比较使用等是地址比较 即使用了“==”进行比较。
示例代码:
IdentityHashMap<String, String> pams = new IdentityHashMap<>();
pams.put("param1", param1);
pams.put("param2", param2);
for(String param3: Param3List.split(";")) {
if (StringUtils.isNotBlank(param3)){
pams.put(new String("param3"), param3);
}
}
最新文章
- 异常处理try-catch-finally
- angularjs入门基础一
- TI BLE协议栈软件框架分析
- Java注释Override、Deprecated、SuppressWarnings详解
- javascript操作class和style样式
- UVa 575 Skew Binary 歪斜二进制
- VC提交网页表单(一共八篇)
- Java设计模式(三)-修饰模式
- 解析JSON、扩展Fiddler
- 浅谈Linux集群
- children 和childNodes 的区别
- windows平台把UliPad添加到右键菜单
- JS数组添加删除
- SpringBoot+MyBatis+MySQL读写分离
- 1.django项目的创建(在CMD中)
- 什么是CSR以及CSR的作用和生成
- spring cloud 路由网关zuul的高可用
- 一道另类的区间dp题 -- P3147 [USACO16OPEN]262144
- python 文件目录遍历
- iOS 中长按手势回调会被触发过两次
热门文章
- Note_4.7
- SpringBoot 配置Druid:不显示SQL监控 —(*) property for user to setup
- 第十一周助教工作总结——NWNU李泓毅
- windows下CEF3的关闭流程《转》
- Windows环境下的安装gcc(c语言环境)
- Cent0S 6.7直接在/etc/resolv.conf文件下修改DNS地址重启不生效问题【转】
- socat管理haproxy配置 ssh-keygen -N &#39;&#39; -t rsa -q -b 2048
- Springmvc request response log
- Leetcode: Longest Common Subsequence
- Netty服务器连接池管理设计思路