zoukankan      html  css  js  c++  java
  • 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;
                            }
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    BZOJ.5068.友好的生物(思路)
    BZOJ.4695.最假女选手(线段树 Segment tree Beats!)
    BZOJ.4355.Play with sequence(线段树)
    BZOJ.4909.[SDOI2017]龙与地下城(正态分布 中心极限定理 FFT Simpson积分)
    HDU.4035.Maze(期望DP)
    Codeforces.1027F.Session in BSU(思路 并查集)
    BZOJ.4299.Codechef FRBSUM(主席树)
    UOJ.41.[清华集训2014]矩阵变换(稳定婚姻)
    BZOJ.5312.冒险(线段树)
    UOJ.386.[UNR #3]鸽子固定器(贪心 链表)
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/11227354.html
Copyright © 2011-2022 走看看