类 Convert
- java.lang.Object
-
- cn.hutool.core.convert.Convert
-
- ai.yue.library.base.convert.Convert
-
public class Convert extends cn.hutool.core.convert.Convert类型转换器提供简单全面的类型转换,适合更多的业务场景,内置hutool、fastjson、yue三种类型转换器,判断精确性能强大,未知类型兼容性更强
- 从以下版本开始:
- 2019年7月23日
- 作者:
- ylyue
-
-
构造器概要
构造器 构造器 说明 Convert()
-
方法概要
所有方法 静态方法 具体方法 已过时的方法 修饰符和类型 方法 说明 static <T> Tconvert(cn.hutool.core.lang.TypeReference<T> reference, Object value)转换值为指定类型static <T> Tconvert(Class<T> type, Object value)已过时。static <T> Tconvert(Class<T> type, Object value, T defaultValue)转换值为指定类型static <T> Tconvert(Object value, Class<T> clazz)转换值为指定类型(推荐)static <T> Tconvert(Type type, Object value)转换值为指定类型static <T> Tconvert(Type type, Object value, T defaultValue)转换值为指定类型static <T> TconvertByClassName(String className, Object value)转换值为指定类型,类型采用字符串表示static <T> TconvertQuietly(Type type, Object value)转换值为指定类型,不抛异常转换
当转换失败时返回nullstatic <T> TconvertQuietly(Type type, Object value, T defaultValue)转换值为指定类型,不抛异常转换
当转换失败时返回默认值static StringtoCamelCase(CharSequence name)将下划线方式命名的字符串转换为驼峰式。static com.alibaba.fastjson.JSONObjecttoCamelCase(Object param)属性命名策略转换-驼峰命名法static List<com.alibaba.fastjson.JSONObject>toCamelCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-驼峰命名法static <T> List<com.alibaba.fastjson.JSONObject>toCamelCaseJsonListT(List<T> list)JsonList属性命名策略转换-驼峰命名法static <T> TtoJavaBean(Object value, Class<T> clazz)转换值为指定 POJO 类型static com.alibaba.fastjson.JSONArraytoJSONArray(Object value)转换为 JSONArraystatic List<com.alibaba.fastjson.JSONObject>toJsonList(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 List - JSONObjectstatic List<com.alibaba.fastjson.JSONObject>toJsonList(List<Map<String,Object>> list)static <T> List<com.alibaba.fastjson.JSONObject>toJsonListT(List<T> list)static com.alibaba.fastjson.JSONObjecttoJSONObject(Object value)转换为 JSONObjectstatic com.alibaba.fastjson.JSONObject[]toJsons(com.alibaba.fastjson.JSONArray jsonArray)JSONArray 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(String jsonString)String 转 JSONObject[]static com.alibaba.fastjson.JSONObject[]toJsons(String text, String regex, String key)String 转 JSONObject[] 示例:static com.alibaba.fastjson.JSONObject[]toJsons(List<com.alibaba.fastjson.JSONObject> list)List-JSONObject 转 JSONObject[]static <T> com.alibaba.fastjson.JSONObject[]toJsonsT(List<T> list)static <T> com.alibaba.fastjson.JSONObject[]toJsonsTAndRemoveEmpty(List<T> list)static <T> List<T>toList(com.alibaba.fastjson.JSONArray jsonArray, Class<T> clazz)static <T> List<T>toList(List<com.alibaba.fastjson.JSONObject> list, Class<T> clazz)static List<String>toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey)static <T> List<T>toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)static <T> ArrayList<T>toList(T[] array)数组转Liststatic List<String>toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey)static <T> List<T>toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)static <T> TtoObject(Object value, Class<T> clazz)转换值为指定类型static com.alibaba.fastjson.JSONObjecttoPropertyNamingStrategy(Object param, com.alibaba.fastjson.PropertyNamingStrategy propertyNamingStrategy)属性命名策略转换static com.alibaba.fastjson.JSONObjecttoSnakeCase(Object param)属性命名策略转换-下划线命名法static List<com.alibaba.fastjson.JSONObject>toSnakeCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-下划线命名法static <T> List<com.alibaba.fastjson.JSONObject>toSnakeCaseJsonListT(List<T> list)JsonList属性命名策略转换-下划线命名法static StringtoSymbolCase(CharSequence str, char symbol)将驼峰式命名的字符串转换为使用符号连接方式。static StringtoUnderlineCase(CharSequence str)将驼峰式命名的字符串转换为下划线方式。static com.alibaba.fastjson.JSONObjecttoUnderlineCase(Object param)属性命名策略转换-下划线命名法static List<com.alibaba.fastjson.JSONObject>toUnderlineCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)JsonList属性命名策略转换-下划线命名法static <T> List<com.alibaba.fastjson.JSONObject>toUnderlineCaseJsonListT(List<T> list)JsonList属性命名策略转换-下划线命名法-
从类继承的方法 cn.hutool.core.convert.Convert
bytesToInt, bytesToLong, bytesToShort, byteToUnsignedInt, chineseToNumber, convertCharset, convertTime, convertWithCheck, digitToChinese, hexStrToStr, hexToBytes, hexToStr, intToByte, intToBytes, longToBytes, numberToChinese, numberToSimple, numberToWord, shortToBytes, strToUnicode, toBigDecimal, toBigDecimal, toBigInteger, toBigInteger, toBool, toBool, toBooleanArray, toByte, toByte, toByteArray, toChar, toChar, toCharArray, toCollection, toDate, toDate, toDBC, toDBC, toDouble, toDouble, toDoubleArray, toEnum, toEnum, toFloat, toFloat, toFloatArray, toHex, toHex, toInstant, toInt, toInt, toIntArray, toList, toList, toLocalDateTime, toLocalDateTime, toLong, toLong, toLongArray, toMap, toNumber, toNumber, toNumberArray, toPrimitiveByteArray, toSBC, toSBC, toShort, toShort, toShortArray, toStr, toStr, toStrArray, unicodeToStr, unWrap, wrap
-
-
-
-
方法详细资料
-
convertByClassName
public static <T> T convertByClassName(String className, Object value) throws cn.hutool.core.convert.ConvertException
转换值为指定类型,类型采用字符串表示- 类型参数:
T- 目标类型- 参数:
className- 类的字符串表示value- 值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convert
@Deprecated public static <T> T convert(Class<T> type, Object value) throws cn.hutool.core.convert.ConvertException
已过时。转换值为指定类型- 类型参数:
T- 目标类型- 参数:
type- 类型value- 值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convert
public static <T> T convert(cn.hutool.core.lang.TypeReference<T> reference, Object value) throws cn.hutool.core.convert.ConvertException转换值为指定类型- 类型参数:
T- 目标类型- 参数:
reference- 类型参考,用于持有转换后的泛型类型value- 值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convert
public static <T> T convert(Type type, Object value) throws cn.hutool.core.convert.ConvertException
转换值为指定类型- 类型参数:
T- 目标类型- 参数:
type- 类型value- 值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convert
public static <T> T convert(Class<T> type, Object value, T defaultValue) throws cn.hutool.core.convert.ConvertException
转换值为指定类型- 类型参数:
T- 目标类型- 参数:
type- 类型value- 值defaultValue- 默认值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convert
public static <T> T convert(Type type, Object value, T defaultValue) throws cn.hutool.core.convert.ConvertException
转换值为指定类型- 类型参数:
T- 目标类型- 参数:
type- 类型value- 值defaultValue- 默认值- 返回:
- 转换后的值
- 抛出:
cn.hutool.core.convert.ConvertException- 转换器不存在
-
convertQuietly
public static <T> T convertQuietly(Type type, Object value)
转换值为指定类型,不抛异常转换
当转换失败时返回null- 类型参数:
T- 目标类型- 参数:
type- 目标类型value- 值- 返回:
- 转换后的值,转换失败返回null
-
convertQuietly
public static <T> T convertQuietly(Type type, Object value, T defaultValue)
转换值为指定类型,不抛异常转换
当转换失败时返回默认值- 类型参数:
T- 目标类型- 参数:
type- 目标类型value- 值defaultValue- 默认值- 返回:
- 转换后的值
-
convert
public static <T> T convert(Object value, Class<T> clazz)
转换值为指定类型(推荐)- 类型参数:
T- 泛型- 参数:
value- 被转换的值clazz- 泛型类型- 返回:
- 转换后的对象
- 从以下版本开始:
- Greenwich.SR1.2
- 另请参阅:
toObject(Object, Class)
-
toObject
public static <T> T toObject(Object value, Class<T> clazz)
转换值为指定类型- 类型参数:
T- 泛型- 参数:
value- 被转换的值clazz- 泛型类型- 返回:
- 转换后的对象
-
toJavaBean
public static <T> T toJavaBean(Object value, Class<T> clazz)
转换值为指定 POJO 类型
性能测试对比如下:
1、Spring BeanUtils:性能伯仲,兼容性远超
2、Cglib BeanCopier:性能伯仲,兼容性远超
3、Apache BeanUtils:秒杀
4、Apache PropertyUtils:秒杀
5、Dozer:秒杀
- 类型参数:
T- 泛型- 参数:
value- 被转换的值clazz- 泛型类型- 返回:
- 转换后的POJO
-
toJSONObject
public static com.alibaba.fastjson.JSONObject toJSONObject(Object value)
转换为 JSONObject- 参数:
value- 被转换的值- 返回:
- JSON
-
toJSONArray
public static com.alibaba.fastjson.JSONArray toJSONArray(Object value)
转换为 JSONArray- 参数:
value- 被转换的值- 返回:
- JSON数组
-
toList
public static <T> ArrayList<T> toList(T[] array)
数组转List此方法为 Arrays.asList(Object...) 的安全实现
- 类型参数:
T- 数组中的对象类- 参数:
array- 将被转换的数组- 返回:
- 被转换数组的列表视图
- 另请参阅:
ListUtils.toList(Object[])
-
toList
public static <T> List<T> toList(com.alibaba.fastjson.JSONArray jsonArray, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
jsonArray- 需要转换的JSONArrayclazz- json转换的POJO类型- 返回:
- 转换后的List
- 另请参阅:
ListUtils.toList(JSONArray, Class)
-
toList
public static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的Listclazz- json转换的POJO类型- 返回:
- 转换后的List
- 另请参阅:
ListUtils.toList(List, Class)
-
toList
public static List<String> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 转换后的List
- 另请参阅:
ListUtils.toList(List, String)
-
toList
public static <T> List<T> toList(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 转换后的List
- 另请参阅:
ListUtils.toList(List, String, Class)
-
toListAndDistinct
public static List<String> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey)
- 参数:
list- 需要转换的ListkeepKey- 保留值的key- 返回:
- 处理后的List
- 另请参阅:
ListUtils.toListAndDistinct(List, String)
-
toListAndDistinct
public static <T> List<T> toListAndDistinct(List<com.alibaba.fastjson.JSONObject> list, String keepKey, Class<T> clazz)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的ListkeepKey- 保留值的keyclazz- 类型- 返回:
- 处理后的List
- 另请参阅:
ListUtils.toListAndDistinct(List, String, Class)
-
toJsonList
public static List<com.alibaba.fastjson.JSONObject> toJsonList(List<Map<String,Object>> list)
- 参数:
list- 需要转换的List- 返回:
- 转换后的List
- 另请参阅:
ListUtils.toJsonList(List)
-
toJsonList
public static List<com.alibaba.fastjson.JSONObject> toJsonList(com.alibaba.fastjson.JSONArray jsonArray)
JSONArray 转 List - JSONObject性能测试报告:
无类型转换(类型推断):见 toJsonList(List)
安全模式强制类型转换:暂未测试
- 参数:
jsonArray- 需要转换的JSONArray- 返回:
- 转换后的jsonList
- 另请参阅:
ListUtils.toJsonList(JSONArray)
-
toJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toJsonListT(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
- 另请参阅:
ListUtils.toJsonListT(List)
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(com.alibaba.fastjson.JSONArray jsonArray)
JSONArray 转 JSONObject[]对象引用转换,内存指针依旧指向元数据
- 参数:
jsonArray- 需要转换的JSONArray- 返回:
- 转换后的jsons
- 另请参阅:
ListUtils.toJsons(JSONArray)
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(List<com.alibaba.fastjson.JSONObject> list)
List-JSONObject 转 JSONObject[]对象引用转换,内存指针依旧指向元数据
- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
- 另请参阅:
ListUtils.toJsons(List)
-
toJsonsT
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsT(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
- 另请参阅:
ListUtils.toJsonsT(List)
-
toJsonsTAndRemoveEmpty
public static <T> com.alibaba.fastjson.JSONObject[] toJsonsTAndRemoveEmpty(List<T> list)
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsons
- 另请参阅:
ListUtils.toJsonsTAndRemoveEmpty(List)
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(String jsonString)
String 转 JSONObject[]- 参数:
jsonString- 需要转换的JSON字符串- 返回:
- JSON数组
- 另请参阅:
ListUtils.toJsons(String)
-
toJsons
public static com.alibaba.fastjson.JSONObject[] toJsons(String text, String regex, String key)
String 转 JSONObject[]示例:
结果: [{"id":"1"}, {"id":"3"}, {"id":"5"}, {"id":"9"}]String text = "1,3,5,9"; JSONObject[] jsons = toJsons(text, ",", "id"); System.out.println(Arrays.toString(jsons));- 参数:
text- 需要转换的文本regex- 文本分割表达式,同String类的split()方法key- JSON的key名称- 返回:
- 转换后的jsons
- 另请参阅:
ListUtils.toJsons(String, String, String)
-
toUnderlineCase
public static String toUnderlineCase(CharSequence str)
将驼峰式命名的字符串转换为下划线方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。
例如:HelloWorld=》hello_world Hello_World=》hello_world HelloWorld_test=》hello_world_test
- 参数:
str- 转换前的驼峰式命名的字符串,也可以为下划线形式- 返回:
- 转换后下划线方式命名的字符串
- 另请参阅:
CharSequenceUtil.toUnderlineCase(CharSequence)
-
toSymbolCase
public static String toSymbolCase(CharSequence str, char symbol)
将驼峰式命名的字符串转换为使用符号连接方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。- 参数:
str- 转换前的驼峰式命名的字符串,也可以为符号连接形式symbol- 连接符- 返回:
- 转换后符号连接方式命名的字符串
- 另请参阅:
CharSequenceUtil.toSymbolCase(CharSequence, char)
-
toCamelCase
public static String toCamelCase(CharSequence name)
将下划线方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。
例如:hello_world=》helloWorld- 参数:
name- 转换前的下划线大写方式命名的字符串- 返回:
- 转换后的驼峰式命名的字符串
- 另请参阅:
CharSequenceUtil.toCamelCase(CharSequence)
-
toCamelCase
public static com.alibaba.fastjson.JSONObject toCamelCase(Object param)
属性命名策略转换-驼峰命名法- 参数:
param- Json参数 或 POJO对象- 返回:
- 经过属性命名策略转换后的 JSONObject
- 另请参阅:
MapUtils.toCamelCase(Object)
-
toUnderlineCase
public static com.alibaba.fastjson.JSONObject toUnderlineCase(Object param)
属性命名策略转换-下划线命名法- 参数:
param- Json参数 或 POJO对象- 返回:
- 经过属性命名策略转换后的 JSONObject
- 另请参阅:
MapUtils.toUnderlineCase(Object)
-
toSnakeCase
public static com.alibaba.fastjson.JSONObject toSnakeCase(Object param)
属性命名策略转换-下划线命名法- 参数:
param- Json参数 或 POJO对象- 返回:
- 经过属性命名策略转换后的 JSONObject
- 另请参阅:
MapUtils.toSnakeCase(Object)
-
toPropertyNamingStrategy
public static com.alibaba.fastjson.JSONObject toPropertyNamingStrategy(Object param, com.alibaba.fastjson.PropertyNamingStrategy propertyNamingStrategy)
属性命名策略转换- 参数:
param- Json参数 或 POJO对象propertyNamingStrategy- 属性命名策略- 返回:
- 经过属性命名策略转换后的 JSONObject
- 另请参阅:
MapUtils.toPropertyNamingStrategy(Object, PropertyNamingStrategy)
-
toSnakeCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-下划线命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
toSnakeCaseJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toSnakeCaseJsonListT(List<T> list)
JsonList属性命名策略转换-下划线命名法
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
-
toUnderlineCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-下划线命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
toUnderlineCaseJsonListT
public static <T> List<com.alibaba.fastjson.JSONObject> toUnderlineCaseJsonListT(List<T> list)
JsonList属性命名策略转换-下划线命名法
- 类型参数:
T- 泛型- 参数:
list- 需要转换的List- 返回:
- 转换后的jsonList
-
toCamelCaseJsonList
public static List<com.alibaba.fastjson.JSONObject> toCamelCaseJsonList(List<com.alibaba.fastjson.JSONObject> list)
JsonList属性命名策略转换-驼峰命名法
- 参数:
list- 需要转换的jsonList- 返回:
- 转换后的jsonList
-
-