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