是什么:
java 万能类型转化工具类,提供Short、Integer、Long、short、int、long 和 String之间的互转,且支持当对象为空时,进行对象的创建。
怎么做:
见代码:
/**
* 如果对象为空,则创建,支持类型装换
*
* 只支持 Long Integer Short 和 String 之间的互转
* @param obj Object
* @param clazz Class<T>
* @param <T> T
* @return <T>
*/
public static <T> T ifNullCreate(Object obj,Class<T> clazz){
T result = null;
if(obj == null){
try {
result = clazz.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}else {
if(clazz.isInstance(obj)){
result = (T)obj ;
}else if (clazz.equals(Long.class) && obj.getClass().equals(String.class)){
Object o = Long.parseLong((String)obj) ;
result = (T)o;
}else if (clazz.equals(Integer.class) && obj.getClass().equals(String.class)){
Object o = Integer.parseInt((String)obj) ;
result = (T)o;
}else if (clazz.equals(Short.class) && obj.getClass().equals(String.class)){
Object o = Short.parseShort((String)obj) ;
result = (T)o;
}else if (clazz.equals(String.class) && (
obj.getClass().equals(Long.class)
|| obj.getClass().equals(long.class)
|| obj.getClass().equals(int.class)
|| obj.getClass().equals(Integer.class)
|| obj.getClass().equals(short.class)
|| obj.getClass().equals(Short.class) )){
Object o = String.valueOf(obj) ;
result = (T)o;
}
}
return result;
}
为什么?
日常开发中,含有大量的类型转化和空值处理,提供一个万能接口很必要……