Hutool Hutool
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(hutool-core)

    • AI(Hutool-ai)

    • 注解(annotation)

    • 数组(array)

    • JavaBean(bean)

    • 缓存(cache)

    • 类加载器(classloader)

    • 编码解码(codec)

    • 集合(collection)

    • 比较器(comparator)

    • 压缩(compress)

    • 类型转换(convert)

    • 数据(data)

    • 日期时间(date)

    • 异常(exception)

    • 函数(func)

    • IO流(io)

    • 语言特性(lang)

    • Map(map)

      • 简介
      • MapUtil
      • MapBuilder
      • MapJoiner
      • MapGetUtil
        • 功能介绍
        • 主要特性
        • 适用场景
        • 使用示例
          • 示例1:基本用法
          • 示例2:设置默认值
          • 示例3:获取嵌套Map的值
          • 示例4:获取集合类型值
        • 注意事项
        • 方法列表
      • CaseInsensitiveMap
      • CamelCaseMap
      • BiMap
      • FixedLinkedHashMap
      • ForestMap
      • Dict
      • MultiValueMap
      • ListValueMap
      • SetValueMap
      • Table
      • SoftConcurrentMap
      • WeakConcurrentMap
      • WeakKeyConcurrentMap
      • ConcurrentLinkedHashMap
    • 数字数学(math)

    • 网络(net)

    • 对象池(pool)

    • 反射(reflect)

    • 正则(regex)

    • 服务提供(spi)

    • 聚合操作(stream)

    • 字符串文本(text)

    • 并发和线程(thread)

    • 树结构(tree)

    • 工具集合(util)

    • XML操作(xml)

  • 定时任务(hutool-cron)

  • 加密(hutool-crypto)

  • 数据库(hutool-db)

  • 扩展(hutool-extra)

  • HTTP(hutool-http)

  • 日志(hutool-log)

  • 配置文件(hutool-setting)

  • JSON(hutool-json)

  • Office办公(hutool-poi)

  • 套接字(hutool-socket)

  • GUI(hutool-swing)

  • 指南
  • 核心(hutool-core)
  • Map(map)
Hutool
2026-01-19
目录

MapGetUtil

# 功能介绍

MapGetUtil是Hutool中用于从Map中获取值的工具类,提供了丰富的方法来便捷地获取不同类型的值。它支持自动类型转换、默认值处理、链式获取嵌套Map的值等功能,大大简化了Map值的获取操作。

# 主要特性

  • 支持自动类型转换(如String转Integer、Long转Double等)
  • 支持设置默认值,避免空指针异常
  • 支持链式获取嵌套Map的值
  • 支持获取集合类型值(List、Set、Map等)
  • 支持获取基本类型值及其包装类型
  • 支持获取日期、时间类型值

# 适用场景

  1. 需要从Map中获取不同类型的值
  2. 需要处理可能为空的值,避免空指针异常
  3. 需要从嵌套Map中获取深层值
  4. 需要自动转换值类型
  5. 需要获取集合类型值

# 使用示例

# 示例1:基本用法

// 创建Map
Map<String, Object> map = MapUtil.of(
    "name", "hutool",
    "version", "7.0.0",
    "author", "looly",
    "stars", 10000,
    "isActive", true
);

// 获取字符串值
String name = MapGetUtil.getString(map, "name");
// 输出: hutool

// 获取整数值(自动转换)
int version = MapGetUtil.getInt(map, "version");
// 输出: 700

// 获取长整型值
long stars = MapGetUtil.getLong(map, "stars");
// 输出: 10000

// 获取布尔值
boolean isActive = MapGetUtil.getBoolean(map, "isActive");
// 输出: true

# 示例2:设置默认值

// 创建Map
Map<String, Object> map = MapUtil.of(
    "name", "hutool",
    "version", "7.0.0"
);

// 获取存在的键,返回对应值
String name = MapGetUtil.getString(map, "name", "default");
// 输出: hutool

// 获取不存在的键,返回默认值
String author = MapGetUtil.getString(map, "author", "unknown");
// 输出: unknown

// 获取不存在的整型值,返回默认值
int downloads = MapGetUtil.getInt(map, "downloads", 0);
// 输出: 0

# 示例3:获取嵌套Map的值

// 创建嵌套Map
Map<String, Object> nestedMap = MapUtil.of(
    "name", "hutool",
    "info", MapUtil.of(
        "version", "7.0.0",
        "author", "looly",
        "details", MapUtil.of(
            "stars", 10000,
            "downloads", 500000
        )
    )
);

// 链式获取嵌套值
String version = MapGetUtil.getString(nestedMap, "info.version");
// 输出: 700

// 获取深层嵌套值
long downloads = MapGetUtil.getLong(nestedMap, "info.details.downloads");
// 输出: 500000

// 获取不存在的嵌套值,返回默认值
String license = MapGetUtil.getString(nestedMap, "info.license", "Apache-2.0");
// 输出: Apache-2.0

# 示例4:获取集合类型值

// 创建包含集合的Map
Map<String, Object> map = MapUtil.of(
    "name", "hutool",
    "tags", ListUtil.of("java", "tool", "util"),
    "contributors", SetUtil.of("looly", "张三", "李四"),
    "versions", MapUtil.of(
        "current", "7.0.0",
        "previous", "6.0.0"
    )
);

// 获取List类型值
List<String> tags = MapGetUtil.getList(map, "tags", String.class);
// 输出: [java, tool, util]

// 获取Set类型值
Set<String> contributors = MapGetUtil.getSet(map, "contributors", String.class);
// 输出: [looly, 张三, 李四]

// 获取Map类型值
Map<String, String> versions = MapGetUtil.getMap(map, "versions", String.class, String.class);
// 输出: {current=7.0.0, previous=6.0.0}

# 注意事项

  1. MapGetUtil支持多种类型转换,但对于复杂类型转换可能会失败
  2. 对于嵌套Map的链式获取,默认使用点号(.)作为分隔符
  3. 当获取的值为null且未设置默认值时,返回对应类型的默认值(如0、false、null等)
  4. 对于集合类型的获取,需要指定泛型类型,否则返回的是Object类型的集合
  5. MapGetUtil是线程安全的,可以在多线程环境下使用

# 方法列表

方法名 描述 参数 返回值
getString(Map<?, ?> map, String key) 获取字符串值 map: Map对象, key: 键 String
getString(Map<?, ?> map, String key, String defaultValue) 获取字符串值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 String
getInt(Map<?, ?> map, String key) 获取整数值 map: Map对象, key: 键 int
getInt(Map<?, ?> map, String key, int defaultValue) 获取整数值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 int
getLong(Map<?, ?> map, String key) 获取长整型值 map: Map对象, key: 键 long
getLong(Map<?, ?> map, String key, long defaultValue) 获取长整型值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 long
getDouble(Map<?, ?> map, String key) 获取双精度浮点型值 map: Map对象, key: 键 double
getDouble(Map<?, ?> map, String key, double defaultValue) 获取双精度浮点型值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 double
getBoolean(Map<?, ?> map, String key) 获取布尔值 map: Map对象, key: 键 boolean
getBoolean(Map<?, ?> map, String key, boolean defaultValue) 获取布尔值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 boolean
getList(Map<?, ?> map, String key, Class elementType) 获取List类型值 map: Map对象, key: 键, elementType: 元素类型 List
getSet(Map<?, ?> map, String key, Class elementType) 获取Set类型值 map: Map对象, key: 键, elementType: 元素类型 Set
getMap(Map<?, ?> map, String key, Class keyType, Class valueType) 获取Map类型值 map: Map对象, key: 键, keyType: 键类型, valueType: 值类型 Map<K, V>
getDate(Map<?, ?> map, String key) 获取日期类型值 map: Map对象, key: 键 Date
getDate(Map<?, ?> map, String key, Date defaultValue) 获取日期类型值,带默认值 map: Map对象, key: 键, defaultValue: 默认值 Date
MapJoiner
CaseInsensitiveMap

← MapJoiner CaseInsensitiveMap→

Theme by Vdoing | Copyright © 2025-2026 Hutool | Apache-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式