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;
}
------解决方案--------------------
顶楼上 的。看看吧。