//这种方式发送消息,接收方会转换失败
.map(number -> {
Map hashMap = new HashMap<String, String>() {{
put("mobile", mobile);
put("checkCode", String.valueOf(number));
}};
// HashMap<String, String> hashMap = new HashMap<>();
// hashMap.put("mobile", mobile);
// hashMap.put("checkCode", String.valueOf(number));
rabbitTemplate.convertAndSend("message", hashMap);
return "success";
})
//这种方式发送消息,接收方回成功
.map(number -> {
// Map hashMap = new HashMap<String, String>() {{
// put("mobile", mobile);
// put("checkCode", String.valueOf(number));
// }};
HashMap<String, String> hashMap = new HashMap<>();
hashMap.put("mobile", mobile);
hashMap.put("checkCode", String.valueOf(number));
rabbitTemplate.convertAndSend("message", hashMap);
return "success";
})
原因在于两个hashmap不一样
Map hashMap = new HashMap<String, String>() {{
put("mobile", mobile);
put("checkCode", String.valueOf(number));
}};
这种方式生成的hasmMap,其实时HashMap的内部类,字节码反编译可以看到。