java如何将Object数组转换为指定类型数组

java如何将Object数组转换为指定类型数组

目录

将Object数组转换为指定类型数组

1.转换函数

2.测试main函数

3.实体类

将Object转换为数组的情况

将Object数组转换为指定类型数组 1.转换函数     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.测试main函数     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.实体类 public class GirlVo implements Serializable {     private static final long serialVersionUID = -8545755852948661858L;     /**ID号*/     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转换为数组的情况

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

最后测试通过。 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持易知道(ezd.cc)。 

推荐阅读