亲宝软件园·资讯

展开

Java Object数组

m0_67401606 人气:0

今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作。

下面展示了一部分代码:

public static boolean isEmpty(Object object) {
    if(object == null){
         return true;
     }
     //数组判空
	 if (object.getClass().isArray()) {
	       Object[] obj = (Object[])object;
           return obj.length == 0;
	 } 
}

在外部,我传进来一个数组后,可以看到直接强转为数组。

我测试了下,转换异常。

后来我自己封装了下,正常的操作应该是这样的:

public static boolean isEmpty(Object object) {
    if(object == null){
         return true;
     }
     //数组判空
	 if (object.getClass().isArray()) {
	       int len = Array.getLength(object);
	    	Object[] obj = new Object[len];
	    	for(int i = 0; i < len; i++) {
	    		obj[i] = Array.get(obj, i);
	    	}
	        return obj.length == 0;
	 } 

}

最后测试通过。

补充:JAVA将Object对象转byte数组

/**
     * 将Object对象转byte数组
     * @param obj byte数组的object对象
     * @return
     */
    public static byte[] toByteArray(Object obj) {
        byte[] bytes = null;
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        try {
            ObjectOutputStream oos = new ObjectOutputStream(bos);
            oos.writeObject(obj);
            oos.flush();
            bytes = bos.toByteArray ();
            oos.close();
            bos.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return bytes;
    }

加载全部内容

相关教程
猜你喜欢
用户评论