Java将Object转换为数组的代码

今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、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;
    }

到此这篇关于Java将Object转换为数组的情况的文章就介绍到这了,更多相关Java Object转换数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(Java将Object转换为数组的代码)