当前位置: 代码迷 >> Java Web开发 >> 字符串转数值,泛型类型转换有关问题
  详细解决方案

字符串转数值,泛型类型转换有关问题

热度:7816   发布时间:2016-04-10 22:33:01.0
字符串转数值,泛型类型转换问题
hi 我写了一个方法,用于将数值型字符串转换成数值的,但是数值型有byte/short/int/long/float/double等,我不想写多个相同功能的方法,请问各位是否有办法可以将以下方法合并成一个,我们只要将类型以泛型传入即可。


public static int parseInt(String str, int defaultValue)
    {
        try
        {
         return Integer.valueOf(str);
        }
        catch (NumberFormatException ex)
        {
            return defaultValue;
        }
    }

public static short parseShort(String str, short defaultValue)
    {
        ...
    }

public static long parseLong(String str, long defaultValue)
    {
        ...
    }


谢谢。
------解决方案--------------------

/**
 * 
 * @author
 * @date 2014-4-27
 * @param clazz
 * @param numberStr
 * @param defaultValue
 * @return
 */
public static Number conv(Class<? extends Number> clazz, String numberStr, Number defaultValue) {
try {
if(Integer.class.isAssignableFrom(clazz)) {
return Integer.parseInt(numberStr);
} else if(Long.class.isAssignableFrom(clazz)) {
return Long.parseLong(numberStr);
} else if(Short.class.isAssignableFrom(clazz)) {
return Short.parseShort(numberStr);
} else if(Double.class.isAssignableFrom(clazz)) {
return Double.parseDouble(numberStr);
} else if(Float.class.isAssignableFrom(clazz)) {
return Float.parseFloat(numberStr);
}
} catch(Exception e) {
return defaultValue;
}
return defaultValue;
}

------解决方案--------------------
顶楼上 的。看看吧。
  相关解决方案