关于工作中.net转java遇到的一个远程调用传递重复参的问题。
工作中遇到一个很奇怪的传参问题。之前.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);
}
}
关于工作中.net转java遇到的一个远程调用传递重复参的问题。的更多相关文章
- java Webservice(一)HttpClient远程调用
我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容 2.通 ...
- Android JNI中C和JAVA代码之间的互相调用
关于Android studio中使用NDK/JNI环境和入门:http://blog.csdn.net/quan648997767/article/details/64923143 1. C代码回调 ...
- [java]给出一个字符串,将重复的字符去除,仅保留第一次出现的字符,且保持去重后的字符在原字符串中的顺序不变
- 工作中常见的Git本地分支与远程分支同步场景
Git 是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. 一直以来本人使用 Git 处理分支都是现用现查,一是因为怕出错,二还是因为懒,作为一名四年开发经验的前端 ...
- Java模拟http请求远程调用接口工具类
package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...
- 安卓入门 使用android创建一个项目 从启动activity中响应按钮事件 启动另一个activity 并传递参数
启动android studio创建一个新项目 public void sendMessage(View view){ Intent intent=new Intent(this,DispalyMes ...
- [工作中的设计模式]中介模式模式Mediator
一.模式解析 用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互. 中介模式又叫调停者模式,他有如下特点: 1.有多个系统或者对 ...
- Stream流的基本介绍以及在工作中的常用操作(去重、排序以及数学运算等)
平时工作中,我在处理集合的时候,总是会用到各种流操作,但是往往在处理一些较为复杂的集合时,还是会出现无法灵活运用api的场景,这篇文章的目的,主要是为介绍一些工作中使用流时的常用操作,例如去重.排序和 ...
- .Net 与 Java 的服务接口相互调用
本文介绍.Net 与 Java 相互调用的例子.下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Remote实现远程对象相互调用. 首先说 ...
随机推荐
- Ubuntu不能连接网络
我的问题是在选择桥接模式下的界面名称选择错误,在windows中我的Intel7260显示未连接,所以更改为Controller之后好用了,折磨了我大半天.
- Windows 实例远程桌面报错“没有远程桌面授权服务器可以提供许可证”
参考阿里云帮助文档: https://help.aliyun.com/knowledge_detail/40859.html?spm=5176.10695662.1996646101.searchcl ...
- STAR原则
所谓STAR原则,即Situation(情景).Task(任务).Action(行动)和Result(结果)四个英文单词的首字母组合.STAR原则是结构化面试当中非常重要的一个理论.S指的是situa ...
- mysql中int长度的意义 int(0)
问题: mysql的字段,unsigned int(3), 和unsinged int(6), 能存储的数值范围是否相同.如果不同,分别是多大?int(0) 能存多少位数字? 不同,int(3)最多显 ...
- viewSwitcher 切换视图
通过VIewSwitcher切换视图.这个用到了baseAdapter,还是不太懂,先记个笔记. <RelativeLayout xmlns:android="http://schem ...
- flutter Form表单
import 'package:flutter/material.dart'; class FormDemo extends StatelessWidget { @override Widget bu ...
- openresty开发系列3--nginx的平滑升级
openresty开发系列3--nginx的平滑升级 nginx服务器从低版本升级为高版本,如果强行停止服务,会影响正在运行的进程. 平滑升级不会停掉正在运行中的进程,这些进程会继续处理请求.但不会接 ...
- shell编程系列20--文本处理三剑客之awk常用选项
shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost s ...
- Spring Cloud微服务安全实战- 2-1 环境安装
下面这些.后续随着讲课逐步再去安装. 2019年1月开始 jdk是收费的 找jdk最后一个免费版本 8u192这是jdk1.8最后的一个免费版本 STS spring提供的ide可以方便的开发spri ...
- 【DataBase】H2 DateBase的拓展使用
连接模式 支持以下连接模式: 嵌入模式(使用JDBC的本地连接) 服务器模式(使用JDBC或ODBC over TCP / IP进行远程连接) 混合模式(同时本地和远程连接) 嵌入模式 在嵌入模式下, ...