package com.shopping.test; import java.util.*; import java.awt.List; import java.lang.reflect.Array; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.Vector; import java.util.WeakHashMap; import java.util.regex.Pattern; import java.util.Iterator; public class Test { public static void main(String args[]) throws Exception { char ch[][] = new char[10][10]; System.out.println("char ch[]= " + isNull(ch)); byte be[] = new byte[10]; System.out.println("byte be[]= " + isNull(be)); float[] ft = new float[10]; System.out.println("float ft[]= " + isNull(ft)); double ad[] = new double[10]; System.out.println("double ad[]= " + isNull(ad)); int ai[][][] = new int[10][10][10]; System.out.println("int ai[]= " + isNull(ai)); Object ob = null; System.out.println("Object= " + isNull(ob)); String a[] = null; System.out.println("String a []= " + isNull(a)); List aa = new List(); System.out.println("List= " + isNull(aa)); ArrayList aaa = new ArrayList(); System.out.println("ArrayList= " + isNull(aaa)); Map map = new HashMap(); System.out.println("HashMap= " + isNull(map)); String a2[][][][] = new String[10][10][10][20]; System.out.println("String a2 [][][][]= " + isNull(a2)); HashMap map2 = new HashMap(); System.out.println("HashMap= " + isNull(map2)); Vector keys = new Vector(); System.out.println("Vector= " + isNull(keys)); Hashtable ht = new Hashtable(); System.out.println("Hashtable= " + isNull(ht)); LinkedList lt = new LinkedList(); System.out.println("LinkedList= " + isNull(lt)); TreeSet tt = new TreeSet(); System.out.println("TreeSet= " + isNull(tt)); Set ss = new TreeSet(); System.out.println("TreeSet= " + isNull(ss)); Iterator it = new ArrayList().iterator(); System.out.println("Iterator= " + isNull(it)); LinkedHashMap llp = new LinkedHashMap(); System.out.println("LinkedHashMap= " + isNull(llp)); LinkedHashSet llt = new LinkedHashSet(); System.out.println("LinkedHashSet= " + isNull(llt)); WeakHashMap wp = new WeakHashMap(); System.out.println("WeakHashMap= " + isNull(wp)); String sra = "'',a,b,c"; System.out.println(sra.split(",")[0]); System.out.println("sra= " + isNull(sra.split(",")[0])); } /** * * 空值檢查<br> * @param pInput 要檢查的字符串<br> * @return boolean 返回檢查結果,但傳入的字符串為空的場合,返回真<br> * */ public static boolean isNull(Object pInput) { // 判斷參數是否為空或者'' if (pInput == null || "".equals(pInput)) { return true; } else if ("java.lang.String".equals(pInput.getClass().getName())) { // 判斷傳入的參數的String類型 替換各種空格 String tmpInput = Pattern.compile("//r|//n|//u3000").matcher((String) pInput).replaceAll(""); // 匹配空 return Pattern.compile("^(//s)*$").matcher(tmpInput).matches(); } else { // 方法類 Method method = null; String newInput = ""; try { // 訪問傳入參數的size方法 method = pInput.getClass().getMethod("size"); // 判斷size大小 // 轉換為String類型 newInput = String.valueOf(method.invoke(pInput)); // size為0的場合 if (Integer.parseInt(newInput) == 0) { return true; } else { return false; } } catch (Exception e) { // 訪問失敗 try { // 訪問傳入參數的getItemCount方法 method = pInput.getClass().getMethod("getItemCount"); // 判斷size大小 // 轉換為String類型 newInput = String.valueOf(method.invoke(pInput)); // getItemCount為0的場合 if (Integer.parseInt(newInput) == 0) { return true; } else { return false; } } catch (Exception ex) { // 訪問失敗 try { // 判斷傳入參數的長度 // 長度為0的場合 if (Array.getLength(pInput) == 0) { return true; } else { return false; } } catch (Exception exx) { // 訪問失敗 try { // 訪問傳入參數的hasNext方法 method = Iterator.class.getMethod("hasNext"); // 轉換String類型 newInput = String.valueOf(method.invoke(pInput)); // 轉換hasNext的值 if (!Boolean.valueOf(newInput)) { return true; } else { return false; } } catch (Exception exxx) { // 以上場合不滿足 return false; } } } } } } }