Package | Description |
---|---|
org.dromara.hutool.core.bean |
Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean、Bean工具等
|
org.dromara.hutool.core.cache |
提供简易的缓存实现,此模块参考了jodd工具中的Cache模块
|
org.dromara.hutool.core.cache.impl |
提供各种缓存实现
|
org.dromara.hutool.core.func |
函数封装
接口灵感来自于ActFramework 一个函数接口代表一个一个函数,用于包装一个函数为对象 在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 |
org.dromara.hutool.core.lang |
语言特性包,包括大量便捷的数据结构,包括:
ANSI:ANSI编码
Builder:构建器
Caller:查找调用者
Copier:拷贝(复制)
Generator:生成器
Getter:getXXX抽象
Intern:规范化表示形式
Loader:加载器的抽象
Mutable:可变值对象封装
Range:区间和边界封装
Tuple:元组
|
org.dromara.hutool.core.map |
Map相关封装,提供特殊Map实现以及Map工具MapUtil
|
org.dromara.hutool.core.map.multi |
多参数类型的Map实现,包括集合类型值的MultiValueMap和Table
MultiValueMap:一个键对应多个值的集合的实现,类似于树的结构。 |
org.dromara.hutool.db |
Hutool-db是一个在JDBC基础上封装的数据库操作工具类,通过包装,使用ActiveRecord思想操作数据库。
|
org.dromara.hutool.json |
JSON(JavaScript Object Notation JavaScript对象表示法)封装
规范见:https://www.rfc-editor.org/rfc/rfc8259 包含以下组件: JSONObject: 使用键值对表示的数据类型,使用"{}"包围 JSONArray: 使用列表表示的数据类型,使用"[]"包围 JSONPrimitive:表示boolean、String、Number等原始类型 JSON封装主要包括JSON表示和JSON转换:
<-----JSONMapper----- <---JSONParser----
Java对象 <====================> JSON对象 <=================> JSON字符串
-----JSONMapper-----> ---JSONWriter---->
当然,为了高效转换,如果没有自定义需求,Java对象可以不通过JSON对象与JSON字符串转换:
JSONTokener:JSON字符串底层解析器,通过Stream方式读取JSON字符串并对不同字段自定义处理。 |
org.dromara.hutool.setting |
Setting模块主要针对Properties文件读写做封装,同时定义一套自己的配置文件规范,实现兼容性良好的配置工具。
|
org.dromara.hutool.setting.props |
配置文件实现封装,例如Properties封装Props
|
Modifier and Type | Method and Description |
---|---|
Map<String,PropertyDescriptor> |
BeanInfoCache.getPropertyDescriptorMap(Class<?> beanClass,
boolean ignoreCase,
SerSupplier<Map<String,PropertyDescriptor>> supplier)
获得属性名和
PropertyDescriptor Map映射 |
Modifier and Type | Method and Description |
---|---|
V |
Cache.get(K key,
boolean isUpdateLastAccess,
long timeout,
SerSupplier<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期(与当前时间差值大于超时时间)返回SerSupplier回调产生的对象,否则返回值。
|
V |
Cache.get(K key,
boolean isUpdateLastAccess,
SerSupplier<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期(与当前时间差值大于超时时间)返回SerSupplier回调产生的对象,否则返回值。
|
V |
SimpleCache.get(K key,
Predicate<V> validPredicate,
SerSupplier<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象
|
V |
SimpleCache.get(K key,
SerSupplier<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回SerSupplier回调产生的对象
|
default V |
Cache.get(K key,
SerSupplier<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期(与当前时间差值大于超时时间)返回SerSupplier回调产生的对象,否则返回值。
|
Modifier and Type | Method and Description |
---|---|
V |
NoCache.get(K key,
boolean isUpdateLastAccess,
long timeout,
SerSupplier<V> supplier) |
V |
AbstractCache.get(K key,
boolean isUpdateLastAccess,
long timeout,
SerSupplier<V> supplier) |
V |
NoCache.get(K key,
boolean isUpdateLastAccess,
SerSupplier<V> supplier) |
V |
AbstractCache.get(K key,
boolean isUpdateLastAccess,
SerSupplier<V> supplier) |
V |
NoCache.get(K key,
SerSupplier<V> supplier) |
Modifier and Type | Method and Description |
---|---|
static <T> SerSupplier<T> |
SerSupplier.last(SerSupplier<T>... serSups)
last
|
Modifier and Type | Method and Description |
---|---|
static <T> SerSupplier<T> |
SerSupplier.last(SerSupplier<T>... serSups)
last
|
Modifier and Type | Method and Description |
---|---|
static <T> T |
Singleton.get(String key,
SerSupplier<T> supplier)
获得指定类的单例对象
对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 |
static <T> Opt<T> |
Opt.ofTry(SerSupplier<T> supplier) |
Opt<T> |
Opt.or(SerSupplier<? extends Opt<? extends T>> supplier)
如果包裹里元素的值存在,就返回本身,如果不存在,则使用传入的操作执行后获得的
Opt |
T |
Opt.orElseGet(SerSupplier<? extends T> supplier)
如果包裹里元素的值存在,则返回该值,否则返回传入的操作执行后的返回值
|
Opt<T> |
Opt.orElseOpt(SerSupplier<? extends T> supplier)
如果包裹里元素的值存在,则返回该值,否则返回传入的操作执行后的返回值
|
<X extends Throwable> |
Opt.orElseThrow(SerSupplier<? extends X> exceptionSupplier)
如果包裹里的值存在,则返回该值,否则执行传入的操作,获取异常类型的返回值并抛出
往往是一个包含无参构造器的异常 例如传入
IllegalStateException::new |
Modifier and Type | Method and Description |
---|---|
Dict |
Dict.setFields(SerSupplier<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Dict.create().setFields(user::getNickname, user::getUsername); |
Constructor and Description |
---|
CollectionValueMap(SerSupplier<Collection<V>> collFactory)
创建一个多值映射集合,默认基于
HashMap 与collFactory 生成的集合实现 |
CollectionValueMap(Supplier<Map<K,Collection<V>>> mapFactory,
SerSupplier<Collection<V>> collFactory)
创建一个多值映射集合,基于
mapFactory 与collFactory 实现 |
Modifier and Type | Method and Description |
---|---|
Entity |
Entity.setFields(SerSupplier<?>... fields)
通过lambda批量设置值
|
ActiveEntity |
ActiveEntity.setFields(SerSupplier<?>... fields)
通过lambda批量设置值
|
Modifier and Type | Method and Description |
---|---|
JSONObject |
JSONObject.putFields(SerSupplier<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值:
User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build();
(new JSONObject()).setFields(user::getNickname, user::getUsername);
|
Modifier and Type | Method and Description |
---|---|
Setting |
Setting.setFields(SerSupplier<String>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Setting.of().setFields(user::getNickname, user::getUsername); |
Modifier and Type | Method and Description |
---|---|
Props |
Props.setFields(SerSupplier<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Setting.of().setFields(user::getNickname, user::getUsername); |
Copyright © 2025. All rights reserved.