今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、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; }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)