Package | Description |
---|---|
cn.hutool.cache |
提供简易的缓存实现,此模块参考了jodd工具中的Cache模块
|
cn.hutool.cache.impl |
提供各种缓存实现
|
cn.hutool.core.bean |
Bean相关操作,包括Bean信息描述,Bean路径表达式、动态Bean、Bean工具等
|
cn.hutool.core.exceptions |
特殊异常封装,同时提供异常工具ExceptionUtil
|
cn.hutool.core.lang |
语言特性包,包括大量便捷的数据结构,例如验证器Validator,分布式ID生成器Snowflake等
|
cn.hutool.core.lang.func |
函数封装
接口灵感来自于ActFramework 一个函数接口代表一个一个函数,用于包装一个函数为对象 在JDK8之前,Java的函数并不能作为参数传递,也不能作为返回值存在,此接口用于将一个函数包装成为一个对象,从而传递对象 |
cn.hutool.core.map |
Map相关封装,提供特殊Map实现以及Map工具MapUtil
|
cn.hutool.core.map.multi |
多参数类型的Map实现,包括集合类型值的Map和Table
|
cn.hutool.db |
Hutool-db是一个在JDBC基础上封装的数据库操作工具类,通过包装,使用ActiveRecord思想操作数据库。
|
Modifier and Type | Method and Description |
---|---|
V |
Cache.get(K key,
boolean isUpdateLastAccess,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回supplier回调产生的对象,否则返回值。
|
V |
Cache.get(K key,
boolean isUpdateLastAccess,
long timeout,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回supplier回调产生的对象,否则返回值。
|
default V |
Cache.get(K key,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
调用此方法时,会检查上次调用时间,如果与当前时间差值大于超时时间返回返回supplier回调产生的对象,否则返回值。
|
Modifier and Type | Method and Description |
---|---|
V |
NoCache.get(K key,
boolean isUpdateLastAccess,
Func0<V> supplier) |
V |
AbstractCache.get(K key,
boolean isUpdateLastAccess,
Func0<V> supplier) |
V |
NoCache.get(K key,
boolean isUpdateLastAccess,
long timeout,
Func0<V> supplier) |
V |
AbstractCache.get(K key,
boolean isUpdateLastAccess,
long timeout,
Func0<V> supplier) |
V |
NoCache.get(K key,
Func0<V> supplier) |
Modifier and Type | Method and Description |
---|---|
BeanDesc |
BeanDescCache.getBeanDesc(Class<?> beanClass,
Func0<BeanDesc> supplier)
获得属性名和
BeanDesc Map映射 |
Map<String,PropertyDescriptor> |
BeanInfoCache.getPropertyDescriptorMap(Class<?> beanClass,
boolean ignoreCase,
Func0<Map<String,PropertyDescriptor>> supplier)
获得属性名和
PropertyDescriptor Map映射 |
Modifier and Type | Interface and Description |
---|---|
static interface |
CheckedUtil.Func0Rt<R> |
Modifier and Type | Method and Description |
---|---|
static <R> CheckedUtil.Func0Rt<R> |
CheckedUtil.uncheck(Func0<R> expression)
接收一个可以转化成 cn.hutool.core.lang.func.Func0 的Lambda表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
static <R> CheckedUtil.Func0Rt<R> |
CheckedUtil.uncheck(Func0<R> expression,
Supplier1<RuntimeException,Exception> rteSupplier)
接收一个可以转化成 cn.hutool.core.lang.func.Func0的Lambda表达式,和一个可以把Exception转化成RuntimeExceptionde的表达式,当执行表达式抛出任何异常的时候,都会转化成运行时异常
如此一来,代码中就不用显示的try-catch转化成运行时异常
|
Modifier and Type | Method and Description |
---|---|
V |
SimpleCache.get(K key,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
|
V |
SimpleCache.get(K key,
Predicate<V> validPredicate,
Func0<V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
|
static <T> T |
Singleton.get(String key,
Func0<T> supplier)
获得指定类的单例对象
对象存在于池中返回,否则创建,每次调用此方法获得的对象为同一个对象 |
static <T> Opt<T> |
Opt.ofTry(Func0<T> supplier) |
Dict |
Dict.setFields(Func0<?>... fields)
通过lambda批量设置值
实际使用时,可以使用getXXX的方法引用来完成键值对的赋值: User user = GenericBuilder.of(User::new).with(User::setUsername, "hutool").build(); Dict.create().setFields(user::getNickname, user::getUsername); |
Modifier and Type | Method and Description |
---|---|
static <T> String |
LambdaUtil.getFieldName(Func0<T> func)
获取lambda表达式Getter或Setter函数(方法)对应的字段名称,规则如下:
getXxxx获取为xxxx,如getName得到name。
|
static <R> String |
LambdaUtil.getMethodName(Func0<R> func)
获取lambda表达式函数(方法)名称
|
static <R> Class<R> |
LambdaUtil.getRealClass(Func0<?> func)
通过对象的方法或类的静态方法引用,获取lambda实现类
传入lambda无参数但含有返回值的情况能够匹配到此方法:
引用特定对象的实例方法:
MyTeacher myTeacher = new MyTeacher();
Class<MyTeacher> supplierClass = LambdaUtil.getRealClass(myTeacher::getAge);
assertEquals(MyTeacher.class, supplierClass);
引用静态无参方法:
Class<MyTeacher> staticSupplierClass = LambdaUtil.getRealClass(MyTeacher::takeAge);
assertEquals(MyTeacher.class, staticSupplierClass);
在以下场景无法获取到正确类型
{@code
// 枚举测试,只能获取到枚举类型
Class |
static <R> SerializedLambda |
LambdaUtil.resolve(Func0<R> func)
解析lambda表达式,加了缓存。
|
Modifier and Type | Method and Description |
---|---|
V |
ReferenceConcurrentMap.computeIfAbsent(K key,
Func0<? extends V> supplier)
从缓存中获得对象,当对象不在缓存中或已经过期返回Func0回调产生的对象
|
Constructor and Description |
---|
CollectionValueMap(float loadFactor,
Map<? extends K,? extends Collection<V>> m,
Func0<Collection<V>> collectionCreateFunc)
构造
|
CollectionValueMap(int initialCapacity,
float loadFactor,
Func0<Collection<V>> collectionCreateFunc)
构造
|
Modifier and Type | Method and Description |
---|---|
Entity |
Entity.setFields(Func0<?>... fields)
通过lambda批量设置值
|
ActiveEntity |
ActiveEntity.setFields(Func0<?>... fields)
通过lambda批量设置值
|
Copyright © 2024. All rights reserved.