Java將Object轉(zhuǎn)換為數(shù)組的代碼
今天在使用一個(gè)別人寫(xiě)的工具類,這個(gè)工具類,主要是判空操作,包括集合、數(shù)組、Map等對(duì)象是否為空的操作。
下面展示了一部分代碼:
public static boolean isEmpty(Object object) {
if(object == null){
return true;
}
//數(shù)組判空
if (object.getClass().isArray()) {
Object[] obj = (Object[])object;
return obj.length == 0;
}
}在外部,我傳進(jìn)來(lái)一個(gè)數(shù)組后,可以看到直接強(qiáng)轉(zhuǎn)為數(shù)組。
我測(cè)試了下,轉(zhuǎn)換異常。
后來(lái)我自己封裝了下,正常的操作應(yīng)該是這樣的:
public static boolean isEmpty(Object object) {
if(object == null){
return true;
}
//數(shù)組判空
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;
}
}最后測(cè)試通過(guò)。
補(bǔ)充:JAVA將Object對(duì)象轉(zhuǎn)byte數(shù)組
/**
? ? ?* 將Object對(duì)象轉(zhuǎn)byte數(shù)組
? ? ?* @param obj byte數(shù)組的object對(duì)象
? ? ?* @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;
? ? }到此這篇關(guān)于Java將Object轉(zhuǎn)換為數(shù)組的情況的文章就介紹到這了,更多相關(guān)Java Object轉(zhuǎn)換數(shù)組內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring處理@Async導(dǎo)致的循環(huán)依賴失敗問(wèn)題的方案詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot中的@Async導(dǎo)致循環(huán)依賴失敗的原因及其解決方案,文中的示例代碼講解詳細(xì),感興趣的可以學(xué)習(xí)一下2022-07-07
SpringBoot中的配置文件加載優(yōu)先級(jí)詳解
這篇文章主要介紹了SpringBoot中的配置文件加載優(yōu)先級(jí)詳解,springboot啟動(dòng)會(huì)掃描以下位置的application.properties或者application.yml文件作為Spring?boot的默認(rèn)配置文件,需要的朋友可以參考下2024-01-01
詳解SpringBoot實(shí)現(xiàn)ApplicationEvent事件的監(jiān)聽(tīng)與發(fā)布
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何實(shí)現(xiàn)ApplicationEvent事件的監(jiān)聽(tīng)與發(fā)布,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-03-03
java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串
這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最大公共子串的方法,詳細(xì)的描述了兩個(gè)字符串的最大公共子串算法的實(shí)現(xiàn),需要的朋友可以參考下2016-10-10
Java 中synchronize函數(shù)的實(shí)例詳解
這篇文章主要介紹了Java 中synchronize函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家理解使用synchronize函數(shù)的使用方法,需要的朋友可以參考下2017-09-09
Spring事務(wù)管理中關(guān)于數(shù)據(jù)庫(kù)連接池詳解
事務(wù)的作用就是為了保證用戶的每一個(gè)操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開(kāi)始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們?cè)谑褂肧pring Boot開(kāi)發(fā)應(yīng)用時(shí),大部分情況下也都需要使用事務(wù)2022-12-12

