java判斷為空的方法


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;
                        }
                    }
                }
            }
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM