有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java泛型:基于类型将对象数组转换为基本数组

我想根据数组中元素的类型将对象数组转换为基本数组

我想实现一个函数,它将对象数组和类型(作为字符串)作为输入,并返回实际数组,即

func(Object[]arr,String type)应该被实现,这样当我调用

func(Object[]arr,“int”),它应该返回int[]

func(Object[]arr,“double”),它应该返回double[]等

有可能做到这一点吗?如果没有,可以做些什么来从对象[]获取基元数组

编辑:我的用例是,我需要创建具有特定字段(比如2)的类A的“n”对象。我将字段作为长度为n的对象数组,即

对象[]字段1

对象[]字段2

我还得到了字符串格式的字段类型(“int”或“double”等),它总是基本的。现在我们可以创建A类对象了吗?如果可能的话,如何创建


共 (1) 个答案

  1. # 1 楼答案

    我建议不要预先分配数组,而是使用ArrayList这样的集合,然后在其中生成结果数组

    ArrayList field1Array = Arrays.stream(arr).map(Object::field1)
    

    如果需要分配更多字段,那么

    ArrayList field1Array = new ArrayList();
    ArrayList field2Array = new ArrayList();
    Arrays.stream(arr).forEach(object -> {
      field1Array.add(object.getField1());
      field2Array.add(object.getField2());
    })