public class PojoUtil extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
private static int |
BATCH_SIZE
批次数量
|
private static Map<String,org.springframework.cglib.beans.BeanCopier> |
BEAN_COPIER_MAP |
private static org.slf4j.Logger |
logger
日志
|
private static Pattern |
PATTERN |
| 限定符 | 构造器和说明 |
|---|---|
private |
PojoUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static List<Field> |
allField(Class<?> clazz)
获取所有的属性
|
static <T> ArrayList<T> |
arrayToList(T... ts)
数组转为集合
|
static <T,R> List<R> |
batchList(Collection<T> params,
Function<List<T>,R> function)
把数据分批次 处理 默认500
比如把一个大的集合按照指定大小转为 集合的集合
批量查询数据库
|
private static <R,T> org.springframework.cglib.beans.BeanCopier |
beanCopier(Class<R> r,
Class<T> t)
获取到 BeanCopier
|
private static int |
cast(long value)
数值强转
|
static <T> T |
cast(Object o)
类型强转
|
private static <T extends TreeSelect> |
children(List<T> tree,
List<T> sources)
递归获取树形结构
|
private static <R,T> List<T> |
copy(List<R> resources,
T target,
Class<T> clazz,
BiConsumer<R,T> consumer)
复制对象公共方法
|
static <R,T> T |
copyBean(R r,
Class<T> clazz)
利用cglib的BeanCopier 拷贝对象
|
static <R,T> void |
copyBean(R r,
T t)
利用cglib的BeanCopier 拷贝对象
|
static <R,T> List<T> |
copyList(List<R> resources,
Class<T> clazz)
复制list
|
static <R,T> List<T> |
copyList(List<R> resources,
Class<T> clazz,
BiConsumer<R,T> consumer)
复制 list集合 可以单独处理某些属性
|
static <T extends Serializable> |
deepCopy(List<T> resources)
深拷贝
|
static <T> List<List<T>> |
executeBatch(Collection<T> params,
Consumer<List<T>> consumer)
把数据分批次 处理 默认500
把指定的数据安装批次大小去执行 比
|
static <T,R> List<R> |
executeBatch(Collection<T> params,
int batchSize,
Function<List<T>,R> function,
Consumer<R> consumer)
把数据分批次 处理
|
static Field |
fieldByName(Class<?> clazz,
String fieldName)
根据名称获取到属性
|
static <T extends Annotation> |
getAnnotation(org.springframework.web.method.HandlerMethod method,
Class<T> clazz)
从HandlerMethod 获取到注解
|
static Method |
getMethod(Class<?> clazz,
String methodName)
反射得到方法
|
static Method |
getMethod(Object o,
String methodName,
Class<?>... classTypes)
目的:从对象及其父类 反射获取对象的方法
可以获取多参数方法 |
static Object |
getProperty(Object bean,
Field field)
反射取值
|
static Object |
getProperty(Object bean,
String name)
反射取值
|
static <K,T> Map<K,List<T>> |
groupMap(List<T> list,
Function<? super T,? extends K> keyMapper)
将集合对象转为map
key为对象里的一个属性,value为对象对象集合
|
static <K,T,R> Map<K,List<R>> |
groupMapList(List<T> list,
Function<? super T,? extends K> keyMapper,
Function<T,R> valueMapper)
将list集合转为 map value为对应的key的集合
|
static <T> T |
map2Bean(Map<String,String[]> source,
Class<T> clazz)
map转bean
|
static <T> T |
newInstance(Class<T> clazz)
根据类型初始化对象
|
static <T> T |
paramsBean(String query,
Class<T> clazz)
将请求参数转为 实体对象
|
static <T,R> void |
setBeanList(T t,
R r,
Function<T,List<R>> get,
BiConsumer<T,List<R>> set)
设置bean里面的list属性
先判断list对象是否存在,不存在的先new一个,再设置
|
static void |
setProperty(Object bean,
String name,
Object value)
反射赋值
|
static void |
setValue(Object o,
Field field,
Object v)
反射设置值
|
static boolean |
single(Collection<?> collection)
是否为单个集合
|
static List<String> |
singleToList(String input)
逗号拼接的字符串转为 list 集合
|
static <K,V,U> Map<K,V> |
sortMap(Map<K,V> map,
Function<? super K,? extends U> keyExtractor,
Comparator<? super U> keyComparator)
根据map的key 排序
|
static <V> Map<String,V> |
sortMap(Map<String,V> map)
map 排序
|
static <T> List<Class<T>> |
subClasses(Class<T> clazz,
String basePackage)
通过 spring 的方式获取到所有的子类
|
static <T> T[] |
toArray(List<T> list,
Class<T> clazz)
集合转为 数组
|
static <T,R> List<R> |
toList(Collection<T> list,
Function<? super T,? extends R> mapper)
list 转 list 使用lambda
|
static <T> List<T> |
toList(Collection<T> list,
Predicate<T> filter,
Consumer<T> peek)
流的方式处理集合
|
static <K,T> Map<K,T> |
toMap(List<T> list,
Function<? super T,? extends K> keyMapper)
将集合对象转为map
key为对象里的一个属性,value为对象本身
|
static <T,K,U> Map<K,U> |
toMap(List<T> list,
Function<? super T,? extends K> keyMapper,
Function<? super T,? extends U> valueMapper)
将集合对象转为map
key 和value 均为对象里的一个属性
|
static <T,K,U> Map<K,U> |
toMap(List<T> list,
Function<? super T,? extends K> keyMapper,
Function<? super T,? extends U> valueMapper,
BinaryOperator<U> mergeFunction)
对象转map 处理了 同key的问题
同key 回覆盖
|
static <T> List<TreeSelect> |
toTree(List<T> resources,
Function<T,TreeSelect> fun,
String root)
转树形结构
|
static <T extends TreeSelect> |
toTree(List<T> resources,
String root)
递归 转为树结构
|
private static final Map<String,org.springframework.cglib.beans.BeanCopier> BEAN_COPIER_MAP
private static final Pattern PATTERN
private static final org.slf4j.Logger logger
private static final int BATCH_SIZE
public static <R,T> List<T> copyList(List<R> resources, Class<T> clazz)
R - 原始数据classT - 目标classresources - 原始的数据listclazz - 目标classpublic static <R,T> List<T> copyList(List<R> resources, Class<T> clazz, BiConsumer<R,T> consumer)
R - 数据源类型T - 返回类型resources - 数据源clazz - 返回类型consumer - 处理函数public static <T> T cast(Object o)
T - 类型o - 数据public static boolean single(Collection<?> collection)
collection - 集合public static List<String> singleToList(String input)
input - 输入字符串@SafeVarargs public static <T> ArrayList<T> arrayToList(T... ts)
T - 集合类型ts - 数组public static <T,R> List<R> toList(Collection<T> list, Function<? super T,? extends R> mapper)
T - 原始集合类型R - 新的集合类型list - 结合mapper - 处理转化过程public static <T> List<T> toList(Collection<T> list, Predicate<T> filter, Consumer<T> peek)
T - 类型list - 集合filter - 过滤peek - peekpublic static <K,T> Map<K,List<T>> groupMap(List<T> list, Function<? super T,? extends K> keyMapper)
K - map的key类型T - value类型list - list集合keyMapper - 获取key的方法public static <K,T,R> Map<K,List<R>> groupMapList(List<T> list, Function<? super T,? extends K> keyMapper, Function<T,R> valueMapper)
K - keyT - 原始数据R - 返回结果list - 数据源keyMapper - keyvalueMapper - valuepublic static <K,T> Map<K,T> toMap(List<T> list, Function<? super T,? extends K> keyMapper)
K - map的key类型T - value类型list - list集合keyMapper - 获取key的方法public static <T,K,U> Map<K,U> toMap(List<T> list, Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
T - list集合对象K - map的key类型U - map的value类型list - list集合keyMapper - 获取key的方法valueMapper - 获取value的方法public static <T,K,U> Map<K,U> toMap(List<T> list, Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
T - list集合对象K - map的key类型U - map的value类型list - list集合keyMapper - 获取key的方法valueMapper - 获取value的方法mergeFunction - 合并的方法public static <V> Map<String,V> sortMap(Map<String,V> map)
V - value 类型map - mappublic static <K,V,U> Map<K,V> sortMap(Map<K,V> map, Function<? super K,? extends U> keyExtractor, Comparator<? super U> keyComparator)
K - keyV - valueU - 字段map - mapkeyExtractor - key 字段keyComparator - key 的比较器public static <T> T[] toArray(List<T> list, Class<T> clazz)
T - 数组list - 集合clazz - 类public static <T,R> void setBeanList(T t,
R r,
Function<T,List<R>> get,
BiConsumer<T,List<R>> set)
先判断list对象是否存在,不存在的先new一个,再设置
T - bean对象类型R - 设置的对象类型t - bean对象r - 设置的信息get - getset - setpublic static Field fieldByName(Class<?> clazz, String fieldName)
clazz - 类型fieldName - 属性名称public static void setProperty(Object bean, String name, Object value)
bean - bean对象name - bean的属性名称value - 对象值public static Object getProperty(Object bean, String name)
bean - bean对象name - bean的属性名称public static Object getProperty(Object bean, Field field)
bean - 对象field - 属性private static int cast(long value)
value - 数public static <T> T paramsBean(String query, Class<T> clazz)
T - 实体类型query - 请求参数clazz - 实体public static <R,T> T copyBean(R r,
Class<T> clazz)
r - 源clazz - 目标public static <R,T> void copyBean(R r,
T t)
r - 源t - 目标private static <R,T> List<T> copy(List<R> resources, T target, Class<T> clazz, BiConsumer<R,T> consumer)
R - 原始类型T - 目标类型resources - 原始数据target - 目标对象clazz - 目标对象类型consumer - 单独处理类型的函数public static <T> T map2Bean(Map<String,String[]> source, Class<T> clazz) throws Exception
T - bean的类型source - 数据源clazz - 类型Exception - 异常private static <R,T> org.springframework.cglib.beans.BeanCopier beanCopier(Class<R> r, Class<T> t)
R - 源类型T - 目标类型r - 源对象t - 目标对象public static <T extends Serializable> List<T> deepCopy(List<T> resources)
T - bean类型resources - 集合public static void setValue(Object o, Field field, Object v) throws IllegalAccessException
o - bean对象field - fieldv - 值IllegalAccessException - 异常public static <T> List<List<T>> executeBatch(Collection<T> params, Consumer<List<T>> consumer)
T - 对象类型params - 参数consumer - 处理public static <T,R> List<R> batchList(Collection<T> params, Function<List<T>,R> function)
T - 对象类型params - 参数function - 处理过程public static <T,R> List<R> executeBatch(Collection<T> params, int batchSize, Function<List<T>,R> function, Consumer<R> consumer)
T - 对象类型params - 参数batchSize - 批次数量function - 处理过程consumer - 最后执行public static <T> T newInstance(Class<T> clazz) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException
T - 对象类型clazz - 对象类型NoSuchMethodException - 异常IllegalAccessException - 异常InvocationTargetException - 异常InstantiationException - 异常public static <T> List<TreeSelect> toTree(List<T> resources, Function<T,TreeSelect> fun, String root)
T - 对象类型resources - 原始集合fun - 转化过程root - 原始数据root节点的值public static <T extends TreeSelect> List<T> toTree(List<T> resources, String root)
T - 对象类型resources - 原始集合root - 原始数据root节点的值private static <T extends TreeSelect> void children(List<T> tree, List<T> sources)
tree - 返回的树sources - 原始数据public static Method getMethod(Object o, String methodName, Class<?>... classTypes)
o - 对象methodName - 对象方法classTypes - 对象参数类型public static Method getMethod(Class<?> clazz, String methodName)
clazz - 类methodName - 方法名称public static <T extends Annotation> T getAnnotation(org.springframework.web.method.HandlerMethod method, Class<T> clazz)
T - 注解类型method - HandlerMethodclazz - 注解类型Copyright © 2024. All rights reserved.