public class BaseTypeTransformer
extends java.lang.Object
Number --> Number, String --> Number, String --> Date, Date --> Stringbyte[] --> ByteBuffer, ByteBuffer --> byte[]Date --> String, String --> Date, Date --> long, long --> DateClass --> String, String --> Class, URL --> URLClassLoaderFile --> URI, URI --> File, String --> Path, Path --> StringEnum --> Number, Number --> Enum, Enum --> String, String --> EnumT --> List<R>, T --> R[],参见 BaseTypeTransformer.SplitTransformer| 限定符和类型 | 类和说明 |
|---|---|
static class |
BaseTypeTransformer.BaseFunction<F,T>
数据类型转换器抽象类
用于将 input转换为指定的类型 |
static class |
BaseTypeTransformer.BooleanToNumber<N extends java.lang.Number>
Function的抽象实现,用于将boolean类型转换为指定的数字类型如果 input为 null或空,则返回 null |
static class |
BaseTypeTransformer.ClassName2ClassFunction
类名到类的转换器
用于将字符串类型的类名转换为 Class对象 |
protected static class |
BaseTypeTransformer.DynamicTransformer<R>
动态类型转换器,根据输入对象的实际类型执行到目标类型的动态转换
|
static class |
BaseTypeTransformer.Empty2NullFunction<F,T>
Function的抽象实现,用于将 input转换为指定的类型如果 input为 null或空,则返回 null |
static class |
BaseTypeTransformer.EnumTransformer<L extends java.lang.Enum<L>,R extends java.lang.Enum<R>>
枚举类型转换
|
class |
BaseTypeTransformer.Fun<L,R>
(非静态)转换类,用于简化泛型类型对象的转换逻辑
使用示例:
{@code
// 创建BaseTypeTransformer实例
BaseTypeTransformer transformer = new BaseTypeTransformer();
// 通过匿名类实现具体转换逻辑
Multiset |
static class |
BaseTypeTransformer.GenericEntryTransformer
Map.Entry转换器用于将 Map.Entry的Key和Value转换为 leftEntryType和 rightEntryType指定的类型 |
static class |
BaseTypeTransformer.Iterable2PrimitiveArrayFunction<F extends java.lang.Iterable,T>
用于将包含基本类型元素的容器类型(
Iterable) 转换为指定的基本类型数组比如 List<Integer> 转换为 int[] |
static class |
BaseTypeTransformer.Number2Enum<E extends java.lang.Enum<E>>
数字到枚举类型转换
|
protected static class |
BaseTypeTransformer.SplitTransformer<L,R>
将
input分割转换为指定的容器类型的转换器通过 L --> Iterable<L> --> Iterable<E>间接转换实现,
实现的前提是子类要提供L --> Iterable<L>的分割转换器比如 input为 String,如果提供了String --> List<String>的转换器,
就可以实现 String --> List<Date>,String --> List<File>,String --> Interger[]的转换如果 input为 null或空,则返回 null |
static class |
BaseTypeTransformer.String2Enum<E extends java.lang.Enum<E>>
字符串到枚举类型转换
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected TransformerContext |
context
上下文对象
|
protected com.google.common.collect.Table<java.lang.reflect.Type,java.lang.reflect.Type,com.google.common.base.Function<?,?>> |
transTable |
protected java.util.concurrent.locks.ReentrantReadWriteLock |
transTableLock
transTable 读写锁 |
protected com.google.common.base.Function<java.net.URL[],java.net.URLClassLoader> |
urlArray2URLClassLoaderFun |
| 构造器和说明 |
|---|
BaseTypeTransformer() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected static <T> java.util.Collection<T> |
asCollection(java.lang.Iterable iterable,
java.lang.Class<T> elementType)
将
iterable 转换为 elementType指定的类型集合 |
protected static java.lang.Iterable |
asIterable(java.lang.Object input,
java.lang.Class<?> elementType)
返回非
null的可迭代对象 Iterable |
static java.lang.Long |
asUnsignedLong(java.lang.Object input)
输入的整型值转为无符号的long,非整型参数返回
null |
static long |
asUnsignedLongChecked(java.lang.Object input)
输入的整型值转为无符号的long,非整型参数抛出异常
|
boolean |
canTransform(java.lang.reflect.Type left,
java.lang.reflect.Type right)
判断是否能执行
left->right的类型转换输入参数为 null时,返回false |
<L,R> R |
cast(java.lang.Object value,
java.lang.reflect.Type left,
java.lang.reflect.Type right)
已过时。
replaced by
to(Object, Type, Type, ContextProvider...) |
protected static int |
computeMatchScore(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right)
计算
left 和 right 的匹配分值分值计算规则如下: 如果 right和 left 类型相同,则分值为 4
如果 right或 left 是原始类型,且对应的原始类型相同,则分值为 3
如果 right是 left 的父类型,则分值为 2
否则,分值为 0
|
protected static com.google.common.reflect.TypeToken<?> |
elementTypeOf(com.google.common.reflect.TypeToken<?> containerType,
boolean throwfUnsupported)
返回容器类型
containerType的元素类型,如果不是容器类型则抛出 UnsupportedOperationException |
protected <C> C |
emptyContainer(java.lang.reflect.Type containerType)
创建空的容器对象(如List,Set,Map,Array等)
|
protected <C,E> C |
emptyContainer(com.google.common.reflect.TypeToken<C> containerType)
创建空的容器对象(如List,Set,Map,Array等)
比如:
int[] array = emptyContainer(int[].class);
List<String> list = emptyContainer(new TypeToken<List<String>>(){});
Map<String,Integer> map = emptyContainer(new TypeToken<Map<String,Integer>>(){});
对于泛型容器类型 (List,Set,Map) 也可以直接提供类型参数,如:
List<String> list = emptyContainer(List.class);
Map<String,Integer> map = emptyContainer(Map.class);
Set<Integer> set = emptyContainer(Set.class);
|
<C> C |
emptyOf(com.google.common.reflect.TypeToken<C> type,
boolean throwfUnsupported)
创建指定类型的空对象
|
protected static byte[] |
getBytesInBuffer(java.nio.ByteBuffer buffer)
返回buffer中所有字节(position~limit),不改变buffer状态
|
protected static char[] |
getCharsInBuffer(java.nio.CharBuffer buffer)
返回buffer中所有字符(position~limit),不改变buffer状态
|
<L,R> com.google.common.base.Function<L,R> |
getTransformer(java.lang.Class<L> left,
java.lang.Class<R> right)
返回
left TO right指定的转换器,参数不可为null |
protected com.google.common.base.Function<?,?> |
getTransformer(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right)
返回
left->right的类型转换器,参数不可为null |
protected com.google.common.base.Function<?,?> |
getTransformer(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> middle,
com.google.common.reflect.TypeToken<?> right)
返回
left->right的类型转换器如果指定了中间类型( middle不为null),则会尝试返回以middle作为中间类型的转换器, 即
left->middle->right的间接转换器 |
<L,R> com.google.common.base.Function<L,R> |
getTransformer(java.lang.reflect.Type left,
java.lang.reflect.Type right)
返回
left->right的类型转换器,参数不可为null |
protected com.google.common.base.Function<?,?> |
getTransformer0(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right,
boolean subMatched)
获取
left -> right的转换器,参数不可为null
如果 transTable表中没有找到匹配的转换器,且subMatched为true,则会尝试以类型匹配规则查找匹配的转换器规则: 如果left是cell.getColumnKey()的超类,right是cell.getRowKey()的子类, 则认为匹配成功 如: List<Integer> -> {@code Collection |
<L,R> com.google.common.base.Function<L,R> |
getTransformerChecked(java.lang.Class<L> left,
java.lang.Class<R> right) |
protected <L,R> com.google.common.base.Function<L,R> |
getTransformerChecked(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right) |
protected com.google.common.base.Function<?,?> |
getTransformerChecked(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> middle,
com.google.common.reflect.TypeToken<?> right) |
<L,R> com.google.common.base.Function<L,R> |
getTransformerChecked(java.lang.reflect.Type left,
java.lang.reflect.Type right) |
protected com.google.common.base.Function<?,?> |
getTransformerChecked(java.lang.reflect.Type left,
java.lang.reflect.Type middle,
java.lang.reflect.Type right) |
protected static boolean |
isAssignable(com.google.common.reflect.TypeToken<?> from,
com.google.common.reflect.TypeToken<?> to)
判断
from 是否可以赋值给 to |
protected static boolean |
isAssignable(java.lang.reflect.Type from,
java.lang.reflect.Type to)
判断
from 是否可以赋值给 to |
static boolean |
isContainerType(java.lang.reflect.Type type) |
protected static boolean |
isContainerType(com.google.common.reflect.TypeToken<?> type) |
static boolean |
isEmpty(java.lang.Object value)
copy from
com.gitee.l0km.com4j.basex.bean.BaseBeanPropertySupport#isEmpty(Object) 判断输入参数是否为 null或空如果输入参数为@ String,Collection,Iterable,Iterator,Map,数组等容器类型则返回其是否为空,
否则返回false |
protected static boolean |
isFakeContainerType(java.lang.Class<?> type)
判断
type 是否实现了容器类型(Map,Iterable,Multimap,Multiset)接口,但不是容器类型有的类型虽然实现了容器类型(Map,Iterable,Multimap,Multiset)接口,但是实际上并不是容器类型, 比如Path,实现了Iterable接口,但是并不是容器类型。 |
protected static boolean |
isNoPrimitiveAssignable(com.google.common.reflect.TypeToken<?> from,
com.google.common.reflect.TypeToken<?> to)
判断
from 是否可以赋值给 to,且 from, to 都不是原始类型 |
<L,R> BaseTypeTransformer |
setTransformer(java.lang.Class<L> left,
java.lang.Class<R> right,
com.google.common.base.Function<L,R> trans)
设置
left -> right的转换器,参数不可为null |
<L,R> BaseTypeTransformer |
setTransformer(java.lang.reflect.Type left,
java.lang.reflect.Type right,
com.google.common.base.Function<L,R> trans) |
protected <L,R> BaseTypeTransformer |
setTransformer(java.lang.reflect.Type left,
java.lang.reflect.Type right,
com.google.common.base.Function<L,R> trans,
boolean overwrite)
定义
left -> right的转换器 |
java.util.List<java.lang.Boolean> |
to(boolean[] input,
java.lang.Class<java.lang.Boolean> left,
java.lang.Class<java.lang.Boolean> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
java.util.List<java.lang.Double> |
to(double[] input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Double> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
java.util.List<java.lang.Double> |
to(float[] input,
java.lang.Class<java.lang.Float> left,
java.lang.Class<java.lang.Double> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
java.util.List<java.lang.Integer> |
to(int[] input,
java.lang.Class<java.lang.Integer> left,
java.lang.Class<java.lang.Integer> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<L,R> java.util.List<R> |
to(L[] input,
java.lang.Class<L> left,
java.lang.Class<R> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<L,R> R |
to(L value,
java.lang.Class<L> left,
java.lang.Class<R> right,
ContextProvider... features)
对
value完成left->right的类型转换 |
<L,R> R |
to(L value,
java.lang.Class<R> right,
ContextProvider... features)
对
value完成到right指定类型的转换,自动推断左值类型 |
<L,R> java.util.List<R> |
to(java.util.List<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
java.util.List<java.lang.Long> |
to(long[] input,
java.lang.Class<java.lang.Long> left,
java.lang.Class<java.lang.Long> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<L,R> R |
to(L value,
java.lang.reflect.Type right,
ContextProvider... features)
对
value完成到right指定类型的转换,自动推断左值类型 |
<L,R> R |
to(L value,
com.google.common.reflect.TypeToken<L> left,
com.google.common.reflect.TypeToken<R> right,
ContextProvider... features)
对
value完成left->right的类型转换 |
<L,R> R |
to(L value,
com.google.common.reflect.TypeToken<R> right,
ContextProvider... features)
对
value完成到right指定类型的转换,自动推断左值类型 |
<L,R> R |
to(L value,
java.lang.reflect.Type left,
java.lang.reflect.Type right,
ContextProvider... features)
对
value完成left->right的类型转换 |
<L,R> R |
to(L value,
java.lang.reflect.Type left,
java.lang.reflect.Type middle,
java.lang.reflect.Type right,
ContextProvider... features)
对
value完成left->right的类型转换 |
<K1,V1,K2,V2> |
to(java.util.Map<K1,V1> input,
java.lang.Class<K1> k1,
java.lang.Class<V1> v1,
java.lang.Class<K2> k2,
java.lang.Class<V2> v2)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<K1,V1,K2,V2> |
to(java.util.Map<K1,V1> input,
java.lang.reflect.Type k1,
java.lang.reflect.Type v1,
java.lang.reflect.Type k2,
java.lang.reflect.Type v2)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<L,R> java.util.Set<R> |
to(java.util.Set<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
java.util.List<java.lang.Short> |
to(short[] input,
java.lang.Class<java.lang.Short> left,
java.lang.Class<java.lang.Short> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
protected static java.lang.Object |
toArray(java.lang.Iterable input,
java.lang.Class componentType)
将
input 转换为数组 |
<L,R> R[] |
toArray(L[] input,
java.lang.Class<L> left,
java.lang.Class<R> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
<L,R> R[] |
toArray(java.util.List<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
boolean[] |
tobooleanArray(java.util.List<java.lang.Boolean> input,
java.lang.Class<java.lang.Boolean> left,
java.lang.Class<java.lang.Boolean> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
byte[] |
tobyteArray(java.util.List<java.lang.Byte> input,
java.lang.Class<java.lang.Byte> left,
java.lang.Class<java.lang.Byte> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
double[] |
todoubleArray(java.util.List<java.lang.Double> input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Double> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
float[] |
tofloatArray(java.util.List<java.lang.Double> input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Float> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
int[] |
tointArray(java.util.List<java.lang.Integer> input,
java.lang.Class<java.lang.Integer> left,
java.lang.Class<java.lang.Integer> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
long[] |
tolongArray(java.util.List<java.lang.Long> input,
java.lang.Class<java.lang.Long> left,
java.lang.Class<java.lang.Long> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
short[] |
toshortArray(java.util.List<java.lang.Short> input,
java.lang.Class<java.lang.Short> left,
java.lang.Class<java.lang.Short> right)
已过时。
replace by
to(Object, Type, Type, ContextProvider...) |
static <K1,K2,V> java.util.Map<K2,V> |
transform(java.util.Map<K1,V> fromMap,
com.google.common.base.Function<K1,K2> transformer)
convert
Map<K1,V> to Map<K2,V> |
protected final TransformerContext context
protected final com.google.common.base.Function<java.net.URL[],java.net.URLClassLoader> urlArray2URLClassLoaderFun
protected final com.google.common.collect.Table<java.lang.reflect.Type,java.lang.reflect.Type,com.google.common.base.Function<?,?>> transTable
protected final java.util.concurrent.locks.ReentrantReadWriteLock transTableLock
transTable 读写锁protected <L,R> BaseTypeTransformer setTransformer(java.lang.reflect.Type left, java.lang.reflect.Type right, com.google.common.base.Function<L,R> trans, boolean overwrite)
left -> right的转换器L - R - left - right - trans - overwrite - 是否覆盖已存在的转换器public <L,R> BaseTypeTransformer setTransformer(java.lang.Class<L> left, java.lang.Class<R> right, com.google.common.base.Function<L,R> trans)
left -> right的转换器,参数不可为nullleft - right - trans - 转换器对象public <L,R> BaseTypeTransformer setTransformer(java.lang.reflect.Type left, java.lang.reflect.Type right, com.google.common.base.Function<L,R> trans)
protected com.google.common.base.Function<?,?> getTransformer0(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right,
boolean subMatched)
left -> right的转换器,参数不可为null
如果 transTable表中没有找到匹配的转换器,且subMatched为true,则会尝试以类型匹配规则查找匹配的转换器List<Integer> -> Collection<? extends Number>,则会匹配 Iterable<? extends Number> -> Set<Integer> left - right - subMatched - 如果没有找到匹配的转换器,是否以类型匹配规则查找匹配的转换器searchMatchedTransformer(TypeToken, TypeToken)protected com.google.common.base.Function<?,?> getTransformer(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right)
left->right的类型转换器,参数不可为nullleft - right - protected <L,R> com.google.common.base.Function<L,R> getTransformerChecked(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right)
protected com.google.common.base.Function<?,?> getTransformer(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> middle,
com.google.common.reflect.TypeToken<?> right)
left->right的类型转换器middle不为null),则会尝试返回以middle作为中间类型的转换器, 即
left->middle->right的间接转换器left - 原类型middle - 中间类型,为null忽略right - 目标类型protected com.google.common.base.Function<?,?> getTransformerChecked(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> middle,
com.google.common.reflect.TypeToken<?> right)
getTransformer(TypeToken, TypeToken, TypeToken)public <L,R> com.google.common.base.Function<L,R> getTransformer(java.lang.Class<L> left,
java.lang.Class<R> right)
left TO right指定的转换器,参数不可为nullleft - right - public <L,R> com.google.common.base.Function<L,R> getTransformerChecked(java.lang.Class<L> left,
java.lang.Class<R> right)
public <L,R> com.google.common.base.Function<L,R> getTransformer(java.lang.reflect.Type left,
java.lang.reflect.Type right)
left->right的类型转换器,参数不可为nullleft - right - public <L,R> com.google.common.base.Function<L,R> getTransformerChecked(java.lang.reflect.Type left,
java.lang.reflect.Type right)
protected com.google.common.base.Function<?,?> getTransformerChecked(java.lang.reflect.Type left,
java.lang.reflect.Type middle,
java.lang.reflect.Type right)
getTransformer(TypeToken, TypeToken, TypeToken)public boolean canTransform(java.lang.reflect.Type left,
java.lang.reflect.Type right)
left->right的类型转换null时,返回falseleft - right - public <L,R> R to(L value,
java.lang.reflect.Type left,
java.lang.reflect.Type middle,
java.lang.reflect.Type right,
ContextProvider... features)
value完成left->right的类型转换value - left - value的原类型middle - 中间类型right - 目标类型features - 转换器特性public <L,R> R to(L value,
java.lang.reflect.Type left,
java.lang.reflect.Type right,
ContextProvider... features)
value完成left->right的类型转换value - left - value的原类型right - 目标类型features - 转换器特性public <L,R> R to(L value,
java.lang.Class<L> left,
java.lang.Class<R> right,
ContextProvider... features)
value完成left->right的类型转换value - left - value的原类型right - 目标类型features - 转换器特性public <L,R> R to(L value,
com.google.common.reflect.TypeToken<L> left,
com.google.common.reflect.TypeToken<R> right,
ContextProvider... features)
value完成left->right的类型转换value - left - value的原类型right - 目标类型features - 转换器特性to(Object, TypeToken, TypeToken, TypeToken, ContextProvider...)public <L,R> R to(L value,
com.google.common.reflect.TypeToken<R> right,
ContextProvider... features)
value完成到right指定类型的转换,自动推断左值类型value - 输入值,其运行时类型作为左值类型right - 目标类型features - 转换器特性public <L,R> R to(L value,
java.lang.reflect.Type right,
ContextProvider... features)
value完成到right指定类型的转换,自动推断左值类型value - 输入值,其运行时类型作为左值类型right - 目标类型features - 转换器特性public <L,R> R to(L value,
java.lang.Class<R> right,
ContextProvider... features)
value完成到right指定类型的转换,自动推断左值类型value - 输入值,其运行时类型作为左值类型right - 目标类型features - 转换器特性public <L,R> java.util.List<R> to(java.util.List<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
to(Object, Type, Type, ContextProvider...)right指定的类型input - left - 列表元素原类型right - 列表元素目标类型public <L,R> java.util.Set<R> to(java.util.Set<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
to(Object, Type, Type, ContextProvider...)right指定的类型input - left - 集合元素原类型right - 集合元素目标类型public <L,R> java.util.List<R> to(L[] input,
java.lang.Class<L> left,
java.lang.Class<R> right)
to(Object, Type, Type, ContextProvider...)right指定的类型input - left - 数组元素原类型right - 数组元素目标类型public java.util.List<java.lang.Integer> to(int[] input,
java.lang.Class<java.lang.Integer> left,
java.lang.Class<java.lang.Integer> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public java.util.List<java.lang.Long> to(long[] input,
java.lang.Class<java.lang.Long> left,
java.lang.Class<java.lang.Long> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public java.util.List<java.lang.Double> to(double[] input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Double> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public java.util.List<java.lang.Double> to(float[] input,
java.lang.Class<java.lang.Float> left,
java.lang.Class<java.lang.Double> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public java.util.List<java.lang.Short> to(short[] input,
java.lang.Class<java.lang.Short> left,
java.lang.Class<java.lang.Short> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public java.util.List<java.lang.Boolean> to(boolean[] input,
java.lang.Class<java.lang.Boolean> left,
java.lang.Class<java.lang.Boolean> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public <L,R> R[] toArray(java.util.List<L> input,
java.lang.Class<L> left,
java.lang.Class<R> right)
to(Object, Type, Type, ContextProvider...)input - left - 列表元素类型right - 数组元素类型public <L,R> R[] toArray(L[] input,
java.lang.Class<L> left,
java.lang.Class<R> right)
to(Object, Type, Type, ContextProvider...)input - left - 列表元素类型right - 数组元素类型public int[] tointArray(java.util.List<java.lang.Integer> input,
java.lang.Class<java.lang.Integer> left,
java.lang.Class<java.lang.Integer> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public long[] tolongArray(java.util.List<java.lang.Long> input,
java.lang.Class<java.lang.Long> left,
java.lang.Class<java.lang.Long> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public double[] todoubleArray(java.util.List<java.lang.Double> input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Double> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public float[] tofloatArray(java.util.List<java.lang.Double> input,
java.lang.Class<java.lang.Double> left,
java.lang.Class<java.lang.Float> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public short[] toshortArray(java.util.List<java.lang.Short> input,
java.lang.Class<java.lang.Short> left,
java.lang.Class<java.lang.Short> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public boolean[] tobooleanArray(java.util.List<java.lang.Boolean> input,
java.lang.Class<java.lang.Boolean> left,
java.lang.Class<java.lang.Boolean> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public byte[] tobyteArray(java.util.List<java.lang.Byte> input,
java.lang.Class<java.lang.Byte> left,
java.lang.Class<java.lang.Byte> right)
to(Object, Type, Type, ContextProvider...)input - left - right - public <K1,V1,K2,V2> java.util.Map<K2,V2> to(java.util.Map<K1,V1> input,
java.lang.Class<K1> k1,
java.lang.Class<V1> v1,
java.lang.Class<K2> k2,
java.lang.Class<V2> v2)
to(Object, Type, Type, ContextProvider...)Map<K1,V1>转换为Map<K2,V2>input - k1 - v1 - k2 - v2 - public <K1,V1,K2,V2> java.util.Map<K2,V2> to(java.util.Map<K1,V1> input,
java.lang.reflect.Type k1,
java.lang.reflect.Type v1,
java.lang.reflect.Type k2,
java.lang.reflect.Type v2)
to(Object, Type, Type, ContextProvider...)Map<K1,V1>转换为Map<K2,V2>input - k1 - v1 - k2 - v2 - public <L,R> R cast(java.lang.Object value,
java.lang.reflect.Type left,
java.lang.reflect.Type right)
to(Object, Type, Type, ContextProvider...)value转换为right指定的类型value - left - value的原类型right - 目标类型protected <C,E> C emptyContainer(com.google.common.reflect.TypeToken<C> containerType)
int[] array = emptyContainer(int[].class);
List<String> list = emptyContainer(new TypeToken<List<String>>(){});
Map<String,Integer> map = emptyContainer(new TypeToken<Map<String,Integer>>(){});
对于泛型容器类型 (List,Set,Map) 也可以直接提供类型参数,如:
List<String> list = emptyContainer(List.class);
Map<String,Integer> map = emptyContainer(Map.class);
Set<Integer> set = emptyContainer(Set.class);
containerType - 容器类型,如 int[].class, List<String>, Map<String,Integer>public <C> C emptyOf(com.google.common.reflect.TypeToken<C> type,
boolean throwfUnsupported)
C - type - throwfUnsupported - 当type不支持创建空对象时,是否抛出异常protected <C> C emptyContainer(java.lang.reflect.Type containerType)
containerType - emptyContainer(TypeToken)protected static final byte[] getBytesInBuffer(java.nio.ByteBuffer buffer)
buffer - protected static final char[] getCharsInBuffer(java.nio.CharBuffer buffer)
buffer - public static java.lang.Long asUnsignedLong(java.lang.Object input)
nullinput - public static long asUnsignedLongChecked(java.lang.Object input)
input - public static final <K1,K2,V> java.util.Map<K2,V> transform(java.util.Map<K1,V> fromMap,
com.google.common.base.Function<K1,K2> transformer)
Map<K1,V> to Map<K2,V>protected static java.lang.Object toArray(java.lang.Iterable input,
java.lang.Class componentType)
input 转换为数组input - 输入迭代器对象componentType - input的元素类型protected static boolean isFakeContainerType(java.lang.Class<?> type)
type 是否实现了容器类型(Map,Iterable,Multimap,Multiset)接口,但不是容器类型type - true,否则返回falseprotected static boolean isContainerType(com.google.common.reflect.TypeToken<?> type)
public static boolean isContainerType(java.lang.reflect.Type type)
protected static int computeMatchScore(com.google.common.reflect.TypeToken<?> left,
com.google.common.reflect.TypeToken<?> right)
left 和 right 的匹配分值right和 left 类型相同,则分值为 4right或 left 是原始类型,且对应的原始类型相同,则分值为 3right是 left 的父类型,则分值为 2left - right - protected static java.lang.Iterable asIterable(java.lang.Object input,
java.lang.Class<?> elementType)
null的可迭代对象 Iterableinput - 输入对象,输入为 null时返回空的 IterableelementType - 元素类型,不为 null时返回 Iterable 的元素类型为 elementTypeIterableprotected static boolean isAssignable(com.google.common.reflect.TypeToken<?> from,
com.google.common.reflect.TypeToken<?> to)
from 是否可以赋值给 toprotected static boolean isAssignable(java.lang.reflect.Type from,
java.lang.reflect.Type to)
from 是否可以赋值给 toprotected static boolean isNoPrimitiveAssignable(com.google.common.reflect.TypeToken<?> from,
com.google.common.reflect.TypeToken<?> to)
from 是否可以赋值给 to,且 from, to 都不是原始类型protected static com.google.common.reflect.TypeToken<?> elementTypeOf(com.google.common.reflect.TypeToken<?> containerType,
boolean throwfUnsupported)
containerType的元素类型,如果不是容器类型则抛出 UnsupportedOperationExceptioncontainerType - 容器类型throwfUnsupported - 当containerType不支持创建空对象时,是否抛出异常,为false时返回nullprotected static <T> java.util.Collection<T> asCollection(java.lang.Iterable iterable,
java.lang.Class<T> elementType)
iterable 转换为 elementType指定的类型集合T - iterable - elementType - public static boolean isEmpty(java.lang.Object value)
com.gitee.l0km.com4j.basex.bean.BaseBeanPropertySupport#isEmpty(Object) null或空String,Collection,Iterable,Iterator,Map,数组等容器类型则返回其是否为空,
否则返回falsevalue - 为null返回trueCopyright © 2025. All Rights Reserved.