java 基本類型轉換工具大集合

平時在開發java程序時, 有時需要內部類型之間的轉換,

.這些轉換需要各種代碼判斷, 處理, 比較麻煩.

在工作時間比較長後, 大部分人都會做成工具類自己用, 下面就是我用的轉換工具類

注: 在多線程程序使用過程中此類是線程安全的:

package test;

import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 基本數據類型之間的相互轉換,對象爲空返回空對象,或者0<br>
 * 包括String,byte,short,int,long,float,double,BigDecimal等等轉換操作<br>
 * 長度:byte 1字節,char 1字節,short 2字節,int 4字節,long 8字節,float 4字節,double 8字節.<br>
 * 注意:1,java系統裏是高位字節在前. 2,基本類型轉成對象類型儘量少用 new, 這裏不再提供方法.
 * Integer 最大數 2147483647, Long 最大數 922337203 6854775808
 * 此類提供的方法儘量採用最有效的轉換方法.<br>
 * 此類提供的方法線程安全.
 * @author guishuanglin 2008-11-10
 * 
 */
public class Convert {
	private static final int scalev = 4;//默認浮點小數位
	private static SimpleDateFormat longFromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	private static SimpleDateFormat shortfromat = new SimpleDateFormat("yyyy-MM-dd");
	
	/** 根據未知類型,把字符轉換成相應類型對象值,返回Object */
	public static Object getObject(String attrVal, Class<?> clazz) {
		String str = Convert.trimEmpty(attrVal);
		if(str == null  || clazz == null) return null;
		try {
	        if(String.class.isAssignableFrom(clazz)) {
	            return str;
	        } else if(Integer.class.isAssignableFrom(clazz)) {
	            return Convert.getInt(str);
	        } else if(Long.class.isAssignableFrom(clazz)) {
	            return Convert.getLong(str);
	        } else if(Double.class.isAssignableFrom(clazz)) {
	            return Convert.getDouble(str);
	        } else if(BigDecimal.class.isAssignableFrom(clazz)) {
	            return Convert.getBigDecimal(str);
	        } else if(Float.class.isAssignableFrom(clazz)) {
	            return Convert.getFloat(str);
	        } else if(Short.class.isAssignableFrom(clazz)) {
	            return Convert.getShort(str);
	        } else if(Byte.class.isAssignableFrom(clazz)) {
	            return Convert.getByte(str);
	        } else if(int.class.isAssignableFrom(clazz)) {
	            return Convert.getint(str);
	        } else if(long.class.isAssignableFrom(clazz)) {
	            return Convert.getlong(str);
	        } else if(double.class.isAssignableFrom(clazz)) {
	            return Convert.getdouble(str);
	        } else if(float.class.isAssignableFrom(clazz)) {
	            return Convert.getfloat(str);
	        } else if(short.class.isAssignableFrom(clazz)) {
	            return Convert.getshort(str);
	        } else if(Date.class.isAssignableFrom(clazz)) {
	            return Convert.getDate(str);
	        }
	    } catch(Exception e) {
	    	System.out.println("類型轉換錯誤:");
	    	e.printStackTrace();
	        return null;
	    }
	    return null;
    }
	
	/** 根據已知T類型,把字符轉換成相應T類型對象值,返回T */
	public static <T> T getObject(String attrVal, Class<T> clazz, T defval) {
		String str = Convert.trimEmpty(attrVal);
		if(str == null  || clazz == null) return null;
		try {
	        if(String.class.isAssignableFrom(clazz)) {
	            return clazz.cast(str);
	        } else if(Integer.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getInt(str));
	        } else if(Long.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getLong(str));
	        } else if(Double.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getDouble(str));
	        } else if(BigDecimal.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getBigDecimal(str));
	        } else if(Float.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getFloat(str));
	        } else if(Short.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getShort(str));
	        } else if(Byte.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getByte(str));
	        } else if(int.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getint(str));
	        } else if(long.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getlong(str));
	        } else if(double.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getdouble(str));
	        } else if(float.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getfloat(str));
	        } else if(short.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getshort(str));
	        } else if(Date.class.isAssignableFrom(clazz)) {
	            return clazz.cast(Convert.getDate(str));
	        }
	    } catch(Exception e) {
	    	System.out.println("類型轉換錯誤:");
	    	e.printStackTrace();
	        return defval;
	    }
	    return defval;
    }
	
	
	/**
	 * 初始日期格式化對象,當日期格式化時發生某種異常時,格式化對象會變得失效,
	 * 因此,如果日期格式產生異常,再初始化一個新對象。
	 */
	private static void initDateFormat() {
		longFromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	}
	
	//----轉換成 String 類型----- guishuanglin 2008-11-10
	
	public static String getString(Double o){
		return o ==null? null : Double.toString(o.doubleValue());
	}
	public static String getString(Float o){
		return o ==null? null : Double.toString(o.floatValue());
	}
	public static String getString(Integer o){
		return o ==null? null : Integer.toString(o.intValue());
	}
	public static String getString(Long o){
		return o ==null? null : Long.toString(o.longValue());
	}
	public static String getString(Short o){
		return o ==null? null : Short.toString(o.shortValue());
	}
	public static String getString(BigDecimal o){
		return o ==null? null : o.toString();
	}
	public static String getString(String o){
		return trimEmpty(o);
	}
	public static String trim(String o){
		return o ==null? null : o.trim();
	}
	public static String trimEmpty(String o){
		if(o==null) return null;
		String str = o.trim();
		if(str==null ||str.equals("") ||str.equals("null") ||str.equals("NULL")) return null;
		return str;
	}
	public static String getString(Double o, int scale){
		return o ==null? null : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getString(Float o, int scale){
		return o ==null? null : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getString(BigDecimal o, int scale){
		return o ==null? null : o.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getString(Object data){
		if(data == null) return null;
		if(data instanceof String){
			return trimEmpty((String)data);
		}
		if(data instanceof Integer){
			return Integer.toString(((Integer)data).intValue());
		}
		if(data instanceof Long){
			return Long.toString(((Long)data).longValue());
		}
		if(data instanceof Double){
			return BigDecimal.valueOf(((Double)data).doubleValue()).setScale(scalev, BigDecimal.ROUND_HALF_UP).toString();
		}
		if(data instanceof Float){
			return BigDecimal.valueOf(((Float)data).doubleValue()).setScale(scalev, BigDecimal.ROUND_HALF_UP).toString();
		}
		if(data instanceof BigDecimal){
			BigDecimal bb =(BigDecimal)data;
			return bb.scale()==0? bb.toString() : bb.setScale(scalev, BigDecimal.ROUND_HALF_UP).toString();
		}
		if(data instanceof Short){
			return Short.toString(((Short)data).shortValue());
		}
		if(data instanceof Byte){
			return Byte.toString(((Byte)data).byteValue());
		}//日期對象不處理
		String s = String.valueOf(data).trim();
		s = trimEmpty(s);
		data = null;
        return s;
	}
	
	public static String getStringEmpty(Double o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(Float o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(Integer o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(Long o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(Short o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(BigDecimal o){
		return o ==null? "" : o.toString();
	}
	public static String getStringEmpty(String o){
		return o ==null? "" : o;
	}
	public static String getStringEmpty(Double o, int scale){
		return o ==null? "" : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getStringEmpty(Float o, int scale){
		return o ==null? "" : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getStringEmpty(BigDecimal o, int scale){
		return o ==null? "" : o.setScale(scale, BigDecimal.ROUND_HALF_UP).toString();
	}
	public static String getStringEmpty(Object data){
		if(data == null) return "";
		return String.valueOf(data).trim();
	}

	//----轉換成 int 類型----- guishuanglin 2008-11-10
	
	public static int getint(Double o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(Float o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(Integer o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(Long o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(Short o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(BigDecimal o){
		return o ==null? 0: o.intValue();
	}
	public static int getint(String o){
		o = trimEmpty(o);
		if(o == null) return 0;
		int x=0;
		try {
        	x = Integer.parseInt(o);
        } catch (java.lang.Exception e) {
        	x=0;
        	System.out.println("字符轉換成 Integer 數據錯誤: "+o);
        }
		return x;
	}

	public static Integer getInt(Double o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(Float o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(Integer o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(Long o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(Short o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(BigDecimal o){
		return o ==null? null: Integer.valueOf(o.intValue());
	}
	public static Integer getInt(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Integer x=null;
		try {
        	x = Integer.valueOf(o);
        } catch (java.lang.Exception e) {
        	x=null;
        	System.out.println("字符轉換成 Integer 數據錯誤: "+o);
        }
		return x;
	}
	/**
	 * 把數據庫數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Integer getInteger(Object data){
		if(data==null){ return null; }
		if(data instanceof Integer){
			return (Integer)data;
		}
		if(data instanceof Long){
			return Integer.valueOf(((Long)data).intValue());
		}
		if(data instanceof Short){
			return Integer.valueOf(((Short)data).intValue());
		}
		if(data instanceof Double){
			return Integer.valueOf(((Double)data).intValue());
		}
		if(data instanceof Float){
			return Integer.valueOf(((Float)data).intValue());
		}
		if(data instanceof BigDecimal){
			return Integer.valueOf(((BigDecimal)data).intValue());
		}
		if(data instanceof Byte){
			return Integer.valueOf(((Byte)data).intValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Integer v = null;
        try {
        	v = new Integer(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Integer 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	
	//----轉換成 double 類型----- guishuanglin 2008-11-10
	
	public static double getdouble(Double o){
		return o ==null? 0: o.doubleValue();
	}
	
	public static double getdouble(Float o){
		return o ==null? 0: o.doubleValue();
	}
	
	public static double getdouble(Integer o){
		return o ==null? 0: o.doubleValue();
	}
	public static double getdouble(Long o){
		return o ==null? 0: o.doubleValue();
	}
	public static double getdouble(Short o){
		return o ==null? 0: o.doubleValue();
	}
	public static double getdouble(BigDecimal o){
		return o ==null? 0: o.doubleValue();
	}
	public static double getdouble(String o){
		o = trimEmpty(o);
		if(o == null) return 0d;
		double x=0;
		try {
        	x = Double.parseDouble(o);
        } catch (java.lang.Exception e) {
        	x=0;
        	System.out.println("字符轉換成 Double 數據錯誤: "+o);
        }
		return x;
	}

	public static Double getDouble(Double o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(Float o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(Integer o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(Long o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(Short o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(BigDecimal o){
		return o ==null? null: Double.valueOf(o.doubleValue());
	}
	public static Double getDouble(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Double x=null;
		try {
        	x = Double.valueOf(o);
        } catch (java.lang.Exception e) {
        	x=null;
        	System.out.println("字符轉換成 Double 數據錯誤: "+o);
        }
		return x;
	}
	/**
	 * 把未知數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Double getDouble(Object data){
		if(data==null){ return null; }
		if(data instanceof Double){
			return (Double)data;
		}
		if(data instanceof Float){
			return new Double(((Float)data).doubleValue());
		}
		if(data instanceof BigDecimal){
			return new Double(((BigDecimal)data).doubleValue());
		}
		if(data instanceof Long){
			return new Double(((Long)data).doubleValue());
		}
		if(data instanceof Integer){
			return new Double(((Integer)data).doubleValue());
		}
		if(data instanceof Short){
			return new Double(((Short)data).doubleValue());
		}
		if(data instanceof Byte){
			return new Double(((Byte)data).doubleValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Double v = null;
        try {
        	v = new Double(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Double 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	
	//----轉換成 Float 類型----- guishuanglin 2008-11-10
	
	public static float getfloat(Double o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(Float o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(Integer o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(Long o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(Short o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(BigDecimal o){
		return o ==null? 0: o.floatValue();
	}
	public static float getfloat(String o){
		o = trimEmpty(o);
		if(o == null) return 0F;
		float x=0;
		try {
        	x = Float.parseFloat(o);
        } catch (java.lang.Exception e) {
        	x=0;
        	System.out.println("字符轉換成 Float 數據錯誤: "+o);
        }
		return x;
	}
	
	public static Float getFloat(Double o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(Float o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(Integer o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(Long o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(Short o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(BigDecimal o){
		return o ==null? null: Float.valueOf(o.floatValue());
	}
	public static Float getFloat(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Float x=null;
		try {
        	x = Float.valueOf(o);
        } catch (java.lang.Exception e) {
        	x=null;
        	System.out.println("字符轉換成 Float 數據錯誤: "+o);
        }
		return x;
	}
	/**
	 * 把未知數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Float getFloat(Object data){
		if(data==null){ return null; }
		if(data instanceof Float){
			return (Float)data;
		}
		if(data instanceof Double){
			return new Float(((Double)data).floatValue());
		}
		if(data instanceof BigDecimal){
			return new Float(((BigDecimal)data).floatValue());
		}
		if(data instanceof Long){
			return new Float(((Long)data).floatValue());
		}
		if(data instanceof Integer){
			return new Float(((Integer)data).floatValue());
		}
		if(data instanceof Short){
			return new Float(((Short)data).floatValue());
		}
		if(data instanceof Byte){
			return new Float(((Byte)data).floatValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Float v = null;
        try {
        	v = new Float(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Float 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	
	//----轉換成 Long 類型----- guishuanglin 2008-11-10
	
	public static long getlong(Double o){
		return o ==null? 0: o.longValue();
	}
	public static long getlong(Float o){
		return o ==null? 0: o.longValue();
	}
	public static long getlong(Integer o){
		return o ==null? 0: o.longValue();
	}
	public static long getlong(Long o){
		return o ==null? 0: o.longValue();
	}
	public static long getlong(Short o){
		return o ==null? 0: o.longValue();
	}
	public static long getlong(BigDecimal o){
		return o ==null? 0: o.longValue();
	}
	/** synchronized 獲取時間的毫秒數 */
	public static long getlong(Date date) {
		if(date==null) return 0;
		long l = date.getTime();
		return l;
	}
	public static long getlong(String o){
		o = trimEmpty(o);
		if(o == null) return 0L;
		long x=0;
		try {
        	x = Long.parseLong(o);
        } catch (java.lang.Exception e) {
        	x=0;
        	System.out.println("字符轉換成 Long 數據錯誤: "+o);
        }
		return x;
	}

	public static Long getLong(Double o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	public static Long getLong(Float o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	public static Long getLong(Integer o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	public static Long getLong(Long o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	public static Long getLong(Short o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	public static Long getLong(BigDecimal o){
		return o ==null? null: Long.valueOf(o.longValue());
	}
	
	/** synchronized 獲取時間的毫秒數 */
	public static Long getLong(Date date) {
		if(date==null) return null;
		long l = date.getTime();
		return l;
	}
	
	public static Long getLong(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Long x=null;
		try {
        	x = Long.valueOf(o);
        } catch (java.lang.Exception e) {
        	x=null;
        	System.out.println("字符轉換成 Long 數據錯誤: "+o);
        }
		return x;
	}
	/**
	 * 把數據庫數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Long getLong(Object data){
		if(data==null){ return null; }
		if(data instanceof Long){
			return (Long)data;
		}
		if(data instanceof Integer){
			return Long.valueOf(((Integer)data).longValue());
		}
		if(data instanceof Short){
			return Long.valueOf(((Short)data).longValue());
		}
		if(data instanceof Double){
			return Long.valueOf(((Double)data).longValue());
		}
		if(data instanceof Float){
			return Long.valueOf(((Float)data).longValue());
		}
		if(data instanceof BigDecimal){
			return Long.valueOf(((BigDecimal)data).longValue());
		}
		if(data instanceof Byte){
			return Long.valueOf(((Byte)data).longValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Long v = null;
        try {
        	v = new Long(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Long 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	//----轉換成 Short 類型----- guishuanglin 2008-11-10
	
	public static short getshort(Double o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(Float o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(Integer o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(Long o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(Short o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(BigDecimal o){
		return o ==null? 0: o.shortValue();
	}
	public static short getshort(String o){
		o = trimEmpty(o);
		if(o == null) return 0;
		short x=0;
		try {
        	x = Short.parseShort(o);
        } catch (java.lang.Exception e) {
        	x=0;
        	System.out.println("字符轉換成 Short 數據錯誤: "+o);
        }
		return x;
	}

	public static Short getShort(Double o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(Float o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(Integer o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(Long o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(Short o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(BigDecimal o){
		return o ==null? null: Short.valueOf(o.shortValue());
	}
	public static Short getShort(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Short x=null;
		try {
        	x = Short.valueOf(o);
        } catch (java.lang.Exception e) {
        	x=null;
        	System.out.println("字符轉換成 Short 數據錯誤: "+o);
        }
		return x;
	}
	/**
	 * 把數據庫數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Short getShort(Object data){
		if(data==null){ return null; }
		if(data instanceof Short){
			return (Short)data;
		}
		if(data instanceof Long){
			return Short.valueOf(((Long)data).shortValue());
		}
		if(data instanceof Integer){
			return Short.valueOf(((Short)data).shortValue());
		}
		if(data instanceof Double){
			return Short.valueOf(((Double)data).shortValue());
		}
		if(data instanceof Float){
			return Short.valueOf(((Float)data).shortValue());
		}
		if(data instanceof BigDecimal){
			return Short.valueOf(((BigDecimal)data).shortValue());
		}
		if(data instanceof Byte){
			return Short.valueOf(((Byte)data).shortValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Short v = null;
        try {
        	v = new Short(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Integer 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	
	//----轉換成 Byte 類型----- guishuanglin 2008-11-10
	
	/**
	 * 把數據庫數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static Byte getByte(Object data){
		if(data==null){ return null; }
		if(data instanceof Byte){
			return (Byte)data;
		}
		if(data instanceof Short){
			return Byte.valueOf(((Short)data).byteValue());
		}
		if(data instanceof Long){
			return Byte.valueOf(((Long)data).byteValue());
		}
		if(data instanceof Integer){
			return Byte.valueOf(((Short)data).byteValue());
		}
		if(data instanceof Double){
			return Byte.valueOf(((Double)data).byteValue());
		}
		if(data instanceof Float){
			return Byte.valueOf(((Float)data).byteValue());
		}
		if(data instanceof BigDecimal){
			return Byte.valueOf(((BigDecimal)data).byteValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Byte v = null;
        try {
        	v = new Byte(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Integer 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}

	//----轉換成 BigDecimal 類型----- guishuanglin 2008-11-10
	
	public static BigDecimal getBigDecimal(Double o){
		return o ==null? null: BigDecimal.valueOf(o.doubleValue());
	}
	public static BigDecimal getBigDecimal(Float o){
		return o ==null? null: BigDecimal.valueOf(o.doubleValue());
	}
	public static BigDecimal getBigDecimal(Integer o){
		return o ==null? null: BigDecimal.valueOf(o.longValue());
	}
	public static BigDecimal getBigDecimal(Long o){
		return o ==null? null: BigDecimal.valueOf(o.longValue());
	}
	public static BigDecimal getBigDecimal(Short o){
		return o ==null? null: BigDecimal.valueOf(o.longValue());
	}
	public static BigDecimal getBigDecimal(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		BigDecimal v=null;
		try {
        	v = new BigDecimal(o);
        } catch (java.lang.Exception e) {
        	v=null;
        	System.out.println("字符轉換成 BigDecimal 數據錯誤:"+o);
        }
		return v;
	}
	public static BigDecimal getBigDecimal(Double o, int scale){
		return o ==null? null : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP);
	}
	public static BigDecimal getBigDecimal(Float o, int scale){
		return o ==null? null : BigDecimal.valueOf(o.doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP);
	}
	public static BigDecimal getBigDecimal(BigDecimal o, int scale){
		return o ==null? null : o.setScale(scale, BigDecimal.ROUND_HALF_UP);
	}
	/**
	 * 把未知數據,格式化成java對象
	 * @date 2008-10-25
	 */
	public static BigDecimal getBigDecimal(Object data){
        return getBigDecimal(data, scalev);
	}
	/**
	 * 把數據庫數據,指定精度(保留小數點後的位數),格式化成java對象
	 * @date 2008-10-25
	 */
	public static BigDecimal getBigDecimal(Object data,int scale){
		if(data==null){ return null; }
		if(data instanceof BigDecimal){
			return ((BigDecimal)data).setScale(scale, BigDecimal.ROUND_HALF_UP);
		}
		if(data instanceof Double){
			BigDecimal v = BigDecimal.valueOf(((Double)data).doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP);
			return v;
		}
		if(data instanceof Float){
			BigDecimal v = BigDecimal.valueOf(((Float)data).doubleValue())
				.setScale(scale, BigDecimal.ROUND_HALF_UP);
			return v;
		}
		if(data instanceof Long){
			return BigDecimal.valueOf(((Long)data).longValue());
		}
		if(data instanceof Integer){
			return BigDecimal.valueOf(((Integer)data).longValue());
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
    	BigDecimal v = null;
        try {
        	v = new BigDecimal(s).setScale(scale, BigDecimal.ROUND_HALF_UP);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 BigDecimal 數據錯誤.");
        } finally {
        	data = null; s = null;
        }
        return v;
	}
	
	public static Date getDate(String o){
		o = trimEmpty(o);
		if(o == null) return null;
		Date v=null;
		try {
			if (o.length() == 10) o = o + " 00:00:00";
			v = longFromat.parse(o);
        } catch (java.lang.Exception e) {
        	v=null;
        	System.out.println("字符轉換成 Date 數據錯誤: "+o);
        }
		return v;
	}

	/**
	 * 把未知數據,格式化成java對象
	 * 數值類型默認爲時間的毫秒數
	 * @date 2008-10-25
	 */
	public static Date getDate(Object data){
		if(data==null){ return null; }
		if(data instanceof Long){
			long ll = ((Long)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof Integer){
			long ll = ((Integer)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof BigDecimal){
			long ll = ((BigDecimal)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof Date){
			return (Date)data;
		}
		if(data instanceof java.sql.Date){
			return (Date)data;
		}
		if(data instanceof java.sql.Timestamp){
			return (Date)data;
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Date v = null;
        try {
        	if (s.length() == 10) s = s + " 00:00:00";
        	v = longFromat.parse(s);
        } catch (Exception e) {
        	initDateFormat();
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Date 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
	/**
	 * 把未知數據,格式化成java對象,如果把字符轉成日期則很有用.
	 * @date 2008-10-25
	 */
	public static Date getDate(Object data, SimpleDateFormat fromat){
		if(data==null){ return null; }
		if(data instanceof Long){
			long ll = ((Long)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof Integer){
			long ll = ((Integer)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof BigDecimal){
			long ll = ((BigDecimal)data).longValue();
			return ll==0? null: new Date(ll);
		}
		if(data instanceof Date){
			return (Date)data;
		}
		if(data instanceof java.sql.Date){
			return (Date)data;
		}
		if(data instanceof java.sql.Timestamp){
			return (Date)data;
		}
		String s = String.valueOf(data).trim();
		if(s.equals("")){ s = null; return null; }
		Date v = null;
        try {
        	if (s.length() == 10) s = s + " 00:00:00";
        	v = fromat.parse(s);
        } catch (Exception e) {
        	data = null;  v = null;
        	System.out.println("對象 "+s+" 轉換成 Date 數據錯誤.");
        } finally {
        	data = null;
        	s = null;
        }
        return v;
	}
		
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章