gistfile1.txt package com.edu.sky.teaching.provider.utils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import pub.tbc.toolkit.Objs;/** * @author zhaoming * @create 2017-12-11 */public class CastUtil { private static final Logger l
package com.edu.sky.teaching.provider.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pub.tbc.toolkit.Objs;
/**
* @author zhaoming
* @create 2017-12-11
*/
public class CastUtil {
private static final Logger log = LoggerFactory.getLogger(pub.tbc.toolkit.CastUtil.class);
private static final String MSG_PREFIX = "类型强制转换失败";
private CastUtil() {
throw new AssertionError("No " + this.getClass() + " instances for you!");
}
private static String msg(String source, Class sourceType, Class targetType) {
return "类型强制转换失败, 原始数据:[" + source + ", ->" + sourceType.getName() + "]不能转换为目标类型:" + targetType.getName();
}
private static void exception(Object source, Class targetType, Exception e) {
log.error(msg(source.toString(), source.getClass(), targetType));
log.error("Exception type: {}, Exception message: {}", e.getClass().getName(), e.getMessage());
throw new RuntimeException(e.getMessage(), e);
}
public static String castString(Object obj) {
return castString(obj, "");
}
public static String castString(Object obj, String defaultValue) {
return obj == null ? defaultValue : String.valueOf(obj);
}
public static double castDouble(Object obj) {
return castDouble(obj, 0.0D);
}
public static double castDouble(Object obj, double defaultValue) {
double doubleValue = defaultValue;
if (obj != null) {
String strValue = castString(obj);
if (Objs.nonEmpty(strValue)) {
try {
doubleValue = Double.parseDouble(strValue);
} catch (NumberFormatException var7) {
exception(strValue, Double.class, var7);
}
}
}
return doubleValue;
}
public static long castLong(Object obj) {
return castLong(obj, 0L);
}
public static long castLong(Object obj, long defaultValue) {
long longValue = defaultValue;
if (obj != null) {
String strValue = castString(obj);
if (Objs.nonEmpty(strValue)) {
try {
longValue = Long.parseLong(strValue);
} catch (NumberFormatException var7) {
exception(strValue, Long.class, var7);
}
}
}
return longValue;
}
public static int castInt(Object obj) {
return castInt(obj, 0);
}
public static int castInt(Object obj, int defaultValue) {
int intValue = defaultValue;
if (obj != null) {
String strValue = castString(obj);
if (Objs.nonEmpty(strValue)) {
try {
intValue = Integer.parseInt(strValue);
} catch (NumberFormatException var5) {
exception(strValue, Integer.class, var5);
}
}
}
return intValue;
}
public static boolean castBoolean(Object obj) {
return castBoolean(obj, false);
}
public static boolean castBoolean(Object obj, boolean defaultValue) {
boolean booleanValue = defaultValue;
if (obj != null) {
booleanValue = Boolean.parseBoolean(castString(obj));
}
return booleanValue;
}
}
