跳到主要内容

ValUtil - 类型转换

返回文档导航 | 工具类速查表


ValUtil 提供"有界宽容"的类型转换:输入为 null → 返回 null(或默认值),类型不同但能转换 → 自动转换,内容无法转换 → 抛异常。

基本类型转换

// 转 Integer
Integer val = ValUtil.toInt(obj); // null → null, "25" → 25
Integer val = ValUtil.toInt(obj, 0); // 带默认值

// 转 Long
Long val = ValUtil.toLong(obj);

// 转 Double
Double val = ValUtil.toDouble(obj);

// 转 Float
Float val = ValUtil.toFloat(obj);

// 转 BigDecimal(金额计算用)
BigDecimal val = ValUtil.toBigDecimal(obj);

// 转 Boolean
Boolean val = ValUtil.toBoolean(obj); // "true"/"1" → true, else false

// 转 String
String val = ValUtil.toStr(obj); // null → null, 其他 → toString()
String val = ValUtil.toStr(obj, "默认值");

集合/数组转换

// 转 JSONList
JSONList list = ValUtil.toList(obj);

// 转 List<T>
List<Integer> ids = ValUtil.toList("1,2,3", Integer.class); // → [1,2,3]

// 转 T[]
Integer[] arr = ValUtil.toArray("1,2,3", Integer.class);

日期转换

// String → Date
Date date = ValUtil.toDate("2024-01-01 12:00:00");
Date date = ValUtil.toDate("2024/01/01", "yyyy/MM/dd");

// String → LocalDateTime
LocalDateTime ldt = ValUtil.toLocalDateTime("2024-01-01 12:00:00");

// 日期格式化输出
String str = ValUtil.toDateStr(obj);
String str = ValUtil.toDateStr(obj, "yyyy-MM-dd");

对象转换

// 跨类型转换(通过 Jackson)
User user = ValUtil.toObj(jsonMap, User.class);
User user = ValUtil.toObj(sourceObj, JavaType);

转换规则

输入目标结果
null任意null 或默认值
"25"Integer25
"99.9"BigDecimal99.9
"true"Booleantrue
"abc"Integer抛异常(内容不可转换)
"1,2,3"List<Integer>[1,2,3](逗号分隔自动拆分)

← 上一节:工具类速查表