当需要做数据类型的转换时(往往是读文件和登录DB的数据类型不匹配)
JAVA的包装类Short需要判空之后再转换
基本类型short转byte会丢失精度,需要有对应超出范围的处理对策。
short转byte:直接转换(会丢失精度)
基本类型short转为下记的数据类型,可以直接转换。
short转int:直接转换(不会丢失精度)
short转long:直接转换(不会丢失精度)
short转double:直接转换不会丢失精度)待确认
short转float:直接转换不会丢失精度)待确认
short转char:直接转换(不会丢失精度)待确认(注:short做为code,直接转为ASCII对应的char)
short转String:直接转换(不会丢失精度)
short转BigDeciaml:直接转换(不会丢失精度)
下面是自己定义的转换代码,相当于三元运算,为了解决有些项目要求代码一行超过120位换行,和函数超过150行拆分函数的checkStyle问题。缩短逻辑处理的代码量。
package common.typechange;
import java.math.BigDecimal;
class _ShortUtil {
/**
* Short转short.
* null默认转换为0.
*
* @param val Short值
*
* @return 非空Short
*/
public static short notNull(Short val) {
return notNull(val, (short)0);
}
/**
* Short转short.
* null默认转换指定值.
*
* @param val Short值
* @param result Short为空时的返回值(可以为Null)
*
* @return Short(可能为Null)
*/
public static short notNull(Short val, short result) {
if (val == null) {
return result;
}
return val;
}
/**
* Short转Byte.
* null或超出范围(小于-128或大于127)默认转换为0.
*
* @param val Short值
*
* @return 非空Byte
*/
public static Byte toByte(Short val) {
return toByte(val, (byte)0);
}
/**
* Short转Byte.
* null或超出范围(小于-128或大于127)默认转换为指定值.
*
* @param val Short值
* @param result Short为空时的返回值(可以为Null)
*
* @return Byte(可能为Null)
*/
public static Byte toByte(Short val, Byte result) {
return toByte(val, result, result, result);
}
/**
* Short转Byte.
* null或超出范围(小于-128或大于127)转换为对应的值.
*
* @param val null转换值
* @param nullVal null转换值
* @param beyondVal 超出范围(大于127)转换值
* @param lessVal 超出范围(小于-128)转换值
*
* @return Byte(可能为Null)
*/
public static Byte toByte(Short val, Byte nullVal, Byte beyondVal, Byte lessVal) {
if (val == null) {
return nullVal;
} else if (val > Byte.MAX_VALUE) {
return beyondVal;
} else if (val < Byte.MIN_VALUE) {
return lessVal;
}
return Byte.valueOf(String.valueOf(val));
}
/**
* Short转Integer.
* null默认转换为0.
*
* @param val Short值
*
* @return 非空Integer
*/
public static Integer toInt(Short val) {
return toInt(val, 0);
}
/**
* Short转Integer.
* null默认转换指定值.
*
* @param val Short值
* @param result Short为空时的返回值(可以为Null)
*
* @return Integer(可能为Null)
*/
public static Integer toInt(Short val, Integer result) {
if (val == null) {
return result;
}
return Integer.valueOf(val);
}
/**
* Short转Long.
* null默认转换为0.
*
* @param val Short值
*
* @return 非空Long
*/
public static Long toLong(Short val) {
return toLong(val, 0L);
}
/**
* Short转Long.
* null默认转换指定值.
*
* @param val Short值
* @param result Short为空时的返回值(可以为Null)
*
* @return Long(可能为Null)
*/
public static Long toLong(Short val, Long reault) {
if (val == null) {
return reault;
}
return Long.valueOf(val);
}
/**
* Short转Char.
* 值转换(0=>'0'),null或超出(0~9)范围默认转换为‘0’.
*
* @param val Short值
*
* @return 非空Character
*/
public static Character toChar(Short val) {
return toChar(val, '0');
}
/**
* Short转Char.
* 值转换(0=>'0').
*
* @param val Short值
* @param nullVal null或超出范围(大于9或小于0)的转换值
*
* @return Character(可能为Null)
*/
public static Character toChar(Short val, Character result) {
return toChar(val, result, result, result);
}
/**
* Short转Char.
* 值转换(0=>'0').
*
* @param val Short值
* @param nullVal null转换值
* @param beyondVal 超出范围(大于9)转换值
* @param lessVal 超出范围(小于0)转换值
*
* @return Character(可能为Null)
*/
public static Character toChar(Short val, Character nullVal, Character beyondVal, Character lessVal) {
if (val == null) {
return nullVal;
} else if (val > Byte.MAX_VALUE) {
return beyondVal;
} else if (val < Byte.MIN_VALUE) {
return lessVal;
}
String str = String.valueOf(val);
char[] chars = str.toCharArray();
return chars[0];
}
/**
* Short转chars.
* 值转换(10=>{'1','0'}),null转换为null.
*
* @param val Byte值
*
* @return chars[](可能为Null)
*/
public static char[] toChars(Short val) {
if (val != null) {
String str = String.valueOf(val);
return str.toCharArray();
}
return null;
}
/**
* Short转Double.
* null默认转换为0.
*
* @param val Byte值
*
* @return 非空Double
*/
public static Double toDouble(Short val) {
return toDouble(val, 0D);
}
/**
* Short转Double.
* null默认转换为指定值.
*
* @param val Short值
* @param reault Short为空时的返回值(可以为Null)
*
* @return Double(可能为Null)
*/
public static Double toDouble(Short val, Double reault) {
if (val == null) {
return reault;
}
return Double.valueOf(val);
}
/**
* Short转Float.
* null默认转换为0.
*
* @param val Short值
*
* @return 非空Float
*/
public static Float toFloat(Short val) {
return toFloat(val, 0F);
}
/**
* Short转Float.
* null转换为指定值.
*
* @param val Short值
* @param reault Short为空时的返回值(可以为Null)
*
* @return Float(可能为Null)
*/
public static Float toFloat(Short val, Float reault) {
if (val == null) {
return reault;
}
return Float.valueOf(val);
}
/**
* Short转BigDecimal.
* null默认转换为0.
*
* @param val Byte值
*
* @return 非空BigDecimal
*/
public static BigDecimal toBigDecimal(Short val) {
return toBigDecimal(val, BigDecimal.ZERO);
}
/**
* Short转BigDecimal.
* null默认转换为指定值.
*
* @param val Short值
* @param reault Short为空时的返回值(可以为Null)
*
* @return BigDecimal(可能为Null)
*/
public static BigDecimal toBigDecimal(Short val, BigDecimal reault) {
if (val == null) {
return reault;
}
return BigDecimal.valueOf(val);
}
/**
* Short转String.
* null默认转换为Empty.
*
* @param val Short值
*
* @return 非Null字符串
*/
public static String toString(Short val) {
return toString(val, "");
}
/**
* Short转String.
* null默认转换为指定值.
*
* @param val Short值
* @param reault Short为空时的返回值(可以为Null)
*
* @return String字符串(可能为Null)
*/
public static String toString(Short val, String reault) {
if (val == null) {
return reault;
}
return String.valueOf(val);
}
}