当前位置: 首页 > 工具软件 > short > 使用案例 >

short与Short类型转换其它数据类型

公孙鸿才
2023-12-01

当需要做数据类型的转换时(往往是读文件和登录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.<br>
     * null默认转换为0.
     * 
     * @param val Short值
     * 
     * @return 非空Short
     */
    public static short notNull(Short val) {
        return notNull(val, (short)0);
    }
    
    /**
     * Short转short.<br>
     * 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.<br>
     * null或超出范围(小于-128或大于127)默认转换为0.
     * 
     * @param val Short值
     * 
     * @return 非空Byte
     */
    public static Byte toByte(Short val) {
        return toByte(val, (byte)0);
    }
    
    /**
     * Short转Byte.<br>
     * 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.<br>
     * 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.<br>
     * null默认转换为0.
     * 
     * @param val Short值
     * 
     * @return 非空Integer
     */
    public static Integer toInt(Short val) {
        return toInt(val, 0);
    }
    
    /**
     * Short转Integer.<br>
     * 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.<br>
     * null默认转换为0.
     * 
     * @param val Short值
     * 
     * @return 非空Long
     */
    public static Long toLong(Short val) {
        return toLong(val, 0L);
    }
    
    /**
     * Short转Long.<br>
     * 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.<br>
     * 值转换(0=>'0'),null或超出(0~9)范围默认转换为‘0’.
     * 
     * @param val Short值
     * 
     * @return 非空Character
     */
    public static Character toChar(Short val) {
        return toChar(val, '0');
    }
    
    /**
     * Short转Char.<br>
     * 值转换(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.<br>
     * 值转换(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.<br>
     * 值转换(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.<br>
     * null默认转换为0.
     * 
     * @param val Byte值
     * 
     * @return 非空Double
     */
    public static Double toDouble(Short val) {
        return toDouble(val, 0D);
    }
    
    /**
     * Short转Double.<br>
     * 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.<br>
     * null默认转换为0.
     * 
     * @param val Short值
     * 
     * @return 非空Float
     */
    public static Float toFloat(Short val) {
        return toFloat(val, 0F);
    }
    
    /**
     * Short转Float.<br>
     * 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.<br>
     * null默认转换为0.
     * 
     * @param val Byte值
     * 
     * @return 非空BigDecimal
     */
    public static BigDecimal toBigDecimal(Short val) {
        return toBigDecimal(val, BigDecimal.ZERO);
    }
    
    /**
     * Short转BigDecimal.<br>
     * 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.<br>
     * null默认转换为Empty.
     * 
     * @param val Short值
     * 
     * @return 非Null字符串
     */
    public static String toString(Short val) {
        return toString(val, "");
    }
    
    /**
     * Short转String.<br>
     * 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);
    }
    
}
 

 类似资料: