关于工作中.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实现远程对象相互调用. 首先说 ...
随机推荐
- BAT 批量执行SQL脚本
需要在BAT的sqlcmd中设置数据库连接信息. https://files.cnblogs.com/files/gguozhenqian/BAT%E6%89%A7%E8%A1%8CSQL%E8%84 ...
- 实体类(VO,DO,DTO,PO)的划分《转载---》
转载自:https://blog.csdn.net/u010722643/article/details/61201899 经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实 ...
- docker 随笔记录
.docker 固定网络ip地址,启动 Docker的时候,用 --network 参数,可以指定网络类型 eg:docker run -itd --name test1 --network brid ...
- 数据结构Java版之二叉查找树(七)
二叉查找树(BST : BInary Search Tree) 二叉查找树的性质: 1.每一个元素有一个键值 2.左子树的键值都小于根节点的键值 3.右子树的键值都大于根节点的键值 4.左右子树都是二 ...
- 数据结构Java版之递归与迭代算法(五)
递归的概念很简单,就是自己调用自己. 而迭代,则是通过修改初始化数据,得到中间结果,然后不断的对中间结果进行修改,而得到最终结果.简单来说迭代就是循环. 在此,我们用一个比较经典的Fibonacci数 ...
- Java IO系统--字符流
字符流:尽管字节流提供了处理任何类型输入/输出操作的足够功能,它们补鞥呢直接操作Unicode字符.字符流层次结构的顶层是Reader和Writer抽象类.类似于InputStream和OutputS ...
- mysql批量更新update中的锁表机制
mysql的行锁是通过索引加载的,即行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁. CREATE TABLE SIMPLE_USER( I ...
- 阿里云配置WAF的步骤
date:2019-07-04 17:59:19 author: headsen chen 配置WAF防护策略 本页目录 操作步骤 网站接入Web应用防火墙(WAF)后,WAF以默认防护策略为其过滤 ...
- Visio 的键盘快捷方式
https://support.office.com/zh-cn/article/Visio-的键盘快捷方式-ee952f31-7e3e-4564-8116-f3ecbb733cc1 https:// ...
- java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
报错: java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Meth ...