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;
     }  
}

最后测试通过。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java深入探究Object类的方法

    目录 1.equals方法 1.API中equals方法的介绍 2.==和equals 的对比 2.hashCode方法 3.toString方法 4.finalize方法 本文主要带大家看看Object类中一些常用方法的API文档的介绍和JDK中的源码. 1.equals方法 1.API中equals方法的介绍 2.==和equals 的对比 == 既可以判断基本类型,又可以判断引用类型,如果判断的是基本类型,判断的是值是否相等,如果判断的是引用类型,则判断的是地址是否相等,即判断是不是同一个

  • 为什么不建议使用Java自定义Object作为HashMap的key

    目录 前言 踩坑历程回顾 hashCode覆写的讲究 为什么hashCode和equals要同时覆写 数据退出机制的兜底 总结 前言 此前部门内的一个线上系统上线后内存一路飙高.一段时间后直接占满.协助开发人员去分析定位,发现内存中某个Object的量远远超出了预期的范围,很明显出现内存泄漏了. 结合代码分析发现,泄漏的这个对象,主要存在一个全局HashMap中,是作为HashMap的Key值.第一反应就是这里key对应类没有去覆写equals()和hashCode()方法,但对照代码仔细一看却

  • java对list<Object>进行手动分页实现

    该方法使用的jdk1.6以后自带的分页工具类实现 public static void main(String[] args) { ArrayList list = new ArrayList<>(); list.add("Luo"); list.add("Tian"); list.add("yan"); list.add("23"); list.add("elegant"); list.add

  • 一文带你了解Java中的Object类及类中方法

    目录 1. Object类介绍 2. 重写toString方法打印对象 3. 对象比较equals方法 4. hashCode方法 1. Object类介绍 Object是Java默认提供的一个类.Java里面除了Object类,所有的类都是存在继承关系的.默认会继承Object父 类.即所有类的对象都可以使用Object的引用进行接收. 范例:使用Object接收所有类的对象 class Person{} class Student{} public class Test { public s

  • java中如何判断JSONObject是否存在某个Key

    目录 判断JSONObject是否存在某个Key 检查json字符串中是否存在该key 下面介绍我自己的情况 判断JSONObject是否存在某个Key JSONObject jsonObj = new JSONObject(); jsonObj.put("version", "1.0.0"); // 版本号 jsonObj.put("encoding", "UTF-8"); // 编码方式 判断jsonObject是否存在v

  • 深入了解Java Object类的使用

    目录 1.equals方法 ==运算符 equals 2.hashCode 3.toString 4.finalize 1.equals方法 ==运算符 比较运算符,即可以判断基本类型又可以判断引用类型 如果判断基本类型,则判断值是否相等 如果判断引用类型,则判断地址是否相等,即判断是否为同一个对象 equals 是object类的一个方法,只能判断引用类型 object - equals源码: public boolean equals(Object obj) { return (this =

  • 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[]) arrayObject

  • 使用Java代码将IP地址转换为int类型的方法

    基本知识点    IP --> 整数: 把IP地址转化为字节数组 通过左移位(<<).与(&).或(|)这些操作转为int 整数 --> IP: 将整数值进行右移位操作(>>>),右移24位,再进行与操作符(&)0xFF,得到的数字即为第一段IP. 将整数值进行右移位操作(>>>),右移16位,再进行与操作符(&)0xFF,得到的数字即为第二段IP. 将整数值进行右移位操作(>>>),右移8位,再进行与操

  • 易语言取字节集数据转换为指定类型的数据

    取字节集数据命令 英文命令:GetBinElement 操作系统支持:Windows.Linux    所属类别:字节集操作 取出字节集中指定位置指定数据类型的数据. 语法:  通用型  取字节集数据 (欲取出其中数据的字节集, 欲取出数据的类型, [起始索引位置]) 例程 说明 取出字节集中指定位置指定数据类型的数据. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

  • 基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

  • java基础之Object类

    Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来. 定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类.例如: public class Demo{ // ... } 实际上是下面代码的简写形式: public class Demo extends Object{ // ... } 在Java中,只有基本类型不是对象,例如数值.字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自

  • JavaScript将数组转换为链表的方法

    JS中将数组转换为链表 /** * 将数组转换为链表 * @param array arr 需要转换的数组 * @param int type 转换的类型,0为单链表,1为循环链表 * @return object 返回链表 */ function array2List(arr, type = 0) { if (!arr.length) return null; let header = { index: 0, data:arr[0], next: null }; let obj = heade

  • Java中Object转换为List类型的实现方法

    前言 在很多项目编写过程中会使用Map<?>类型来进行参数的传递.为了能够让更多的类型放入value中,实例化的类型往往是Map<String, Object>来存放数据. 解析数据的时候map.get(key)所获取到的类型为Object.此时,需要转换成我们所需要的数据类型进行使用. 类型转换 在类型转换工程中,常见的转换方式为强制转换.如(String)map.get(key),(int)map.get(key)等.在是如果接收的类型为List,此时强转(List<St

  • java 实现将Object类型转换为int类型

    如何将Object类型转换为int类型 Object object = null; try { Integer.parseInt(object.toString()); } catch (NumberFormatException e) {} 也可以先判定一下是否是Integer //可以先判定一下是否是Integer Object object = "111"; if (object instanceof Integer) { Integer.parseInt(object.toSt

  • Java实现显示指定类型的文件

    文件作为存储数据的单元,会根据数据类型产生很多分类,也就是所谓的文件类型.在对数据文件进行操作时,常常需要根据不同的文件类型来作不同的处理.本实例实现的是读取文件夹指定类型的文件并显示到表格控件中.这对于项目开发中的文件分类起到了抛砖引玉的作用. 思路分析: 因为是窗体应用,首先看视图层.需要一个按钮控件JButton用来选择文件夹:需要一个标签控件JLabel用来显示选择的路径:需要一个标签控件JLabel提示用户输入什么:需要一个文本框控件JTextField供用户输入文件类型:需要一个表格

  • 举例讲解Java中数组和字符串类型的使用方法

    Java数组 数组是具有相同数据类型的一组数据的集合,Java支持多为数组,一维数组的每个基本单元都是基本数据类型的数据,二维数组就是每个基本单元是一维数组的一维数组,以此类推,n维数组的每个基本单元都是n-1为数组的n-1维数组.下面以一维数组为例说明Java数组的用法. 1.数组声明 数组声明有如下两种形式(方括号的位置不同): int arr[]; int[] arr2; 2.数组初始化 数组初始化也有两种形式,如下(使用new或不使用new): int arr[] = new int[]

随机推荐