您的位置:首页 > 编程语言 > Java开发

java 判断对象是否为空或者传入集合对象的是否为空,以及判断数组的长度

2008-12-11 22:57 615 查看
package Test;

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.SortedMap;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.util.WeakHashMap;
import java.util.regex.Pattern;
import java.util.Iterator;

public class TestNull {
@SuppressWarnings("unchecked")

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]));

SortedMap m= new TreeMap();
System.out.println("SortedMap= " + isNull(m));
}

/**
* 空值检查<br>
* <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;
}
}
}
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: