java如何將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組
將Object數(shù)組轉(zhuǎn)換為指定類型數(shù)組
1.轉(zhuǎn)換函數(shù)
?? ?public static <T> T[] convertArray(Class<T> targetType, Object[] arrayObjects) {
? ? ? ? if (targetType == null) {
? ? ? ? ? ? return (T[]) arrayObjects;
? ? ? ? }
? ? ? ? if (arrayObjects == null) {
? ? ? ? ? ? return null;
? ? ? ? }
? ? ? ? T[] targetArray = (T[]) Array.newInstance(targetType, arrayObjects.length);
? ? ? ? try {
? ? ? ? ? ? System.arraycopy(arrayObjects, 0, targetArray, 0, arrayObjects.length);
? ? ? ? } catch (ArrayStoreException e) {
? ? ? ? ?? ?e.printStackTrace();
? ? ? ? }
? ? ? ? return targetArray;
? ? }2.測(cè)試main函數(shù)
?? ?public static void main(String []args){
?
?? ??? ? GirlVo girlVo =new GirlVo();
?? ??? ? girlVo.setGirlId("08123");
?? ??? ? girlVo.setGirlName("張一");
?? ??? ? GirlVo girlVo2 =new GirlVo();
?? ??? ? girlVo2.setGirlId("08456");
?? ??? ? girlVo2.setGirlName("張二");
?? ??? ? Object[] arrayObjects2 = new Object[2];
?? ??? ? arrayObjects2[0] = girlVo;
?? ??? ? arrayObjects2[1] = girlVo2;
?? ??? ??
?? ??? ? GirlVo[] arrayObjects3 ;
?? ??? ? arrayObjects3 = convertArray(GirlVo.class,arrayObjects2);
?? ??? ? for(int i=0;i<arrayObjects3.length;i++){
?? ??? ??? ? System.out.println("輸出GirlVo: "+arrayObjects3[i].toString());
?? ??? ? }
?? ?}3.實(shí)體類
public class GirlVo implements Serializable {
?? ??
?? ?private static final long serialVersionUID = -8545755852948661858L;
?? ?
?? ?/**ID號(hào)*/
?? ?String girlId;
?? ?/**姓名*/
?? ?String girlName;
?? ?/**年齡*/
?? ?long age;
?? ?/**身高*/
?? ?double height;
?? ?/**罩杯*/
?? ?String cupSize;
?? ?public String getGirlId() {
?? ??? ?return girlId;
?? ?}
?? ?public void setGirlId(String girlId) {
?? ??? ?this.girlId = girlId;
?? ?}
?? ?public String getGirlName() {
?? ??? ?return girlName;
?? ?}
?? ?public void setGirlName(String girlName) {
?? ??? ?this.girlName = girlName;
?? ?}
?? ?public long getAge() {
?? ??? ?return age;
?? ?}
?? ?public void setAge(long age) {
?? ??? ?this.age = age;
?? ?}
?? ?public double getHeight() {
?? ??? ?return height;
?? ?}
?? ?public void setHeight(double height) {
?? ??? ?this.height = height;
?? ?}
?? ?public String getCupSize() {
?? ??? ?return cupSize;
?? ?}
?? ?public void setCupSize(String cupSize) {
?? ??? ?this.cupSize = cupSize;
?? ?}
?
?? ?@Override
?? ?public String toString() {
?? ??? ?
?? ??? ?return "GirlVo [girlId=" + girlId
?? ??? ??? ??? ?+",girlName=" + girlName
?? ??? ??? ??? ?+",age=" + age
?? ??? ??? ??? ?+",height=" + height
?? ??? ??? ??? ?+",cupSize=" + cupSize
?? ??? ??? ??? ?+"]";
?? ?}
}將Object轉(zhuǎn)換為數(shù)組的情況
今天在使用一個(gè)別人寫的工具類,這個(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)來一個(gè)數(shù)組后,可以看到直接強(qiáng)轉(zhuǎn)為數(shù)組。
我測(cè)試了下,轉(zhuǎn)換異常。
后來我自己封裝了下,正常的操作應(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è)試通過。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺析Java中對(duì)稱與非對(duì)稱加密算法原理與使用
密碼學(xué)是研究編制密碼和破譯密碼的技術(shù)科學(xué)。這篇文章主要為大家介紹了Java中對(duì)稱與非對(duì)稱加密算法的原理與使用,感興趣的小伙伴可以了解一下2023-03-03
Java Jedis NOAUTH Authentication required問題解決方法
這篇文章主要介紹了Java Jedis NOAUTH Authentication required問題解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟
本文主要介紹了java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(41)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法示例
這篇文章主要介紹了Java基于遞歸和循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積算法,結(jié)合實(shí)例形式分析了Java使用遞歸與循環(huán)兩種方式實(shí)現(xiàn)未知維度集合的笛卡爾積相關(guān)概念、原理與操作技巧,需要的朋友可以參考下2017-12-12

