这篇文章主要介绍了java如何将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;
}
}
最后测试通过。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程学习网。
沃梦达教程
本文标题为:java如何将Object数组转换为指定类型数组
基础教程推荐
猜你喜欢
- Java文件管理操作的知识点整理 2023-05-19
- springboot自定义starter方法及注解实例 2023-03-31
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- java基础知识之FileInputStream流的使用 2023-08-11
- Java并发编程进阶之线程控制篇 2023-03-07
- Java数据结构之对象比较详解 2023-03-07
- Java实现线程插队的示例代码 2022-09-03
- Java实现查找文件和替换文件内容 2023-04-06
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- java实现多人聊天系统 2023-05-19