当前位置: 首页 > news >正文

Map<String, Object> - 餐厅的“菜单“

Map<String, Object>是一个单层集合,不是集合套集合,就像:

1. 餐厅菜单的结构

Map<String, Object> response = new HashMap<>();
response.put("success", true);        // 键:"success" → 值:true
response.put("message", "保存成功");   // 键:"message" → 值:"保存成功"  
response.put("data", record);         // 键:"data" → 值:record对象

结果:

{"success": true,"message": "保存成功", "data": {餐饮记录对象}
}

2. Map的特点

  • 键值对:每个键对应一个值
  • 单层结构:键是String,值是Object(可以是任何类型)
  • 不是嵌套:不是Map套Map

3. Object类型的灵活性

response.put("success", true);           // Object = Boolean
response.put("message", "保存成功");      // Object = String  
response.put("data", record);            // Object = MealRecord对象
response.put("count", 5);                // Object = Integer
response.put("list", Arrays.asList(1,2,3)); // Object = List

4. 如果是集合套集合会是这样

Map<String, Map<String, Object>> nestedMap; // 这才是集合套集合

5. 实际类比

Map<String, Object>就像:

  • 菜单:菜名(String)→ 菜品信息(Object,可能是价格、描述等)
  • 通讯录:姓名(String)→ 联系方式(Object,可能是电话、地址等)

不是:

  • 菜单套菜单
  • 通讯录套通讯录

Map<String, Object>就是一个"万能容器",可以装任何类型的数据!

那<Map<String, Object>> 外面扩这个的这个尖括号代表什么,泛型吗?

泛型 - Java的"标签系统"

是的!<Map<String, Object>>外面的尖括号就是泛型,就像:

1. 餐厅的"标签系统"

ResponseEntity<Map<String,Object>>

类比:

  • ResponseEntity = 快递盒
  • <Map<String, Object>> = 快递盒上的标签"此盒内装:菜单类型物品"

2. 泛型的作用

告诉编译器:"这个ResponseEntity里面装的是Map类型的数据"

告诉开发者:"这个方法的返回值是什么类型"

3. 有泛型 vs 没有泛型

// 有泛型(推荐)
ResponseEntity<Map<String, Object>> response = ResponseEntity.ok(data);
// 编译器知道:response里面装的是Map// 没有泛型(不推荐)
ResponseEntity response = ResponseEntity.ok(data);  
// 编译器不知道:response里面装的是什么

4. 泛型的"类型安全"

// 编译时检查
ResponseEntity<Map<String, Object>> response = ResponseEntity.ok(data);
Map<String, Object> result = response.getBody(); // ✅ 安全,类型匹配// 如果没有泛型
ResponseEntity response = ResponseEntity.ok(data);
String result = (String) response.getBody(); // ⚠️ 危险,可能类型转换错误

5. 实际类比

泛型就像:

  • 快递单:标明"此包裹内装:电子产品"
  • 药瓶标签:标明"此瓶内装:感冒药"
  • 文件袋标签:标明"此袋内装:合同文件"

作用:

  • 防止装错:不能把苹果装到"电子产品"的盒子里
  • 方便识别:一看标签就知道里面是什么
  • 避免混乱:不会拿错东西

<Map<String, Object>>就是告诉Java:"这个ResponseEntity里面装的是Map类型的数据,键是String,值是Object"!

http://www.dtcms.com/a/504291.html

相关文章:

  • 宁波网站建设流程有哪些网站设计考虑要素
  • 新手学做免费网站西安 网站搭建
  • floodfill 算法(dfs)
  • node做网站岳阳做网站推荐
  • 成都营销型网站建设公司网站设计中新闻版块怎么做
  • 基于LM2904A(3PEAK)的5V~24V电源电压检测电路完整设计笔记
  • 如何获取PyTorch中间层的值:两种实用方法详解
  • 电容式传感器
  • 网络授时与授时概念解析
  • 设计师投稿网站自媒体平台大全
  • 计算机网站怎么做wordpress 软件价格
  • Linux中I2C常见问题二
  • 做泰迪狗网站的意义下载全网搜
  • linux 5.10 移植kfence调试踩内存纪要
  • 网站游戏网站建设动漫设计与制作主要学什么
  • [嵌入式系统-146]:五次工业革命对应的机器人形态的演进、主要功能的演进以及操作系统的演进
  • 网站开发工程师前景分析网站推广经验杂谈
  • 做网站行业统称叫什么行业那些网站可以做0首付分期手机号
  • 百度网址大全 官网首页seoul是什么国家
  • 山西忻州市忻府区怎么把做的网站优化到百度
  • Shell脚本入门:从基础到实战
  • 【Linux】深入理解线程同步与互斥
  • 山东青岛网站建设公司排名网站空白页黑链
  • C++学习之变量、常量、关键字、标识符命名规则、数据类型
  • BMS电池管理系统学习笔记_SOC算法
  • 浅谈信创数据库改造重难点
  • 建设银行唐山分行网站上海专业网站建设服务
  • 算法沉淀第七天(AtCoder Beginner Contest 428 和 小训练赛)
  • 温州做网站定制车载互联系统网站建设
  • 迅当网络深圳外贸网站建设竞价网络推广