当前位置: 首页 > 知识库问答 >
问题:

使用反射的数组初始化

沈骞仕
2023-03-14

有人请帮助了解我们如何在java初始化数组使用反射。

对于简单对象,我们可以这样做:

Class l_dto_class = Class.forName(p_fld.getType().getName());
Object l_dto_obj= l_dto_class.newInstance();

但对于数组的情况,它给了我一个例外。

java.lang.InstantiationException

共有2个答案

朱宜
2023-03-14

有一个类为Array在反射java.lang.reflect.Array

int[] test = (int[])Array.newInstance(int.class, 3);
魏翰
2023-03-14

您可以像这样实例化数组:

if (l_dto_class.isArray()) {
        Object aObject = Array.newInstance(l_dto_class, 5); //5 is length
        int length = Array.getLength(aObject); // will be 5
        for (int i=0; i<length; i++)
            Array.set(aObject, i, "someVal"); // set your val here
    }
}
 类似资料:
  • 本文向大家介绍使用Java中的反射实用程序初始化数组,包括了使用Java中的反射实用程序初始化数组的使用技巧和注意事项,需要的朋友参考一下 可以使用方法java.util.Arrays.fill()初始化数组,该方法是java.util.Arrays类中提供的实用程序方法。此方法将所需的值分配给数组中的所有元素或指定范围内的所有元素。 演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程

  • 尝试初始化变量时遇到问题: 我搜索了该怎么做,但没有找到。我读到要初始化的对象必须是静态的,但我找不到声明Map静态的方法。 谢谢你的帮助!

  • 在类实例被释放的时候,反初始化器就会立即被调用。你可以是用 deinit 关键字来写反初始化器,就如同写初始化器要用 init 关键字一样。反初始化器只在类类型中有效。 反初始化器原理 当实例不再被需要的时候 Swift会自动将其释放掉,以节省资源。如同自动引用计数中描述的那样,Swift 通过自动引用计数(ARC)来处理实例的内存管理。基本上,当你的实例被释放时,你不需要手动清除它们。总之,当你

  • 我有以下课程: 现在,我需要使用以下项目初始化2D数组: 我看了这个例子,但它在我的情况下不起作用:Java8流和数组操作。它们使用单个。 问:当然我可以使用嵌套for循环,但我认为它现在已经过时了,而且被认为是不好的。那么,如何应用streams api并以Java8的方式初始化它呢?

  • 问题内容: 我正在尝试初始化一个2D数组,其中每个元素的类型为 char 。到目前为止,我只能按照以下方式初始化此数组。 我认为如果数组是10 * 10,这是简单的方法。 有什么有效的方法吗? 问题答案: 这样的事情怎么样: 以下完整的Java程序: 输出: 之所以有效,是因为Unicode中的数字是连续的,从\ u0030开始(这是您从中得到的)。 表达式(您可以在其中变化以及介于两者之间(包括

  • 本文向大家介绍C++ 数组初始化,包括了C++ 数组初始化的使用技巧和注意事项,需要的朋友参考一下 示例 数组只是特定类型变量的顺序存储位置的块。数组的分配方式与普通变量相同,但是在其名称后附加方括号,方括号[]中包含适合数组内存的元素数。 下面的数组示例使用typ int,变量名arrayOfInts和[5]数组可以容纳的元素数: 可以像这样同时声明和初始化数组 通过列出其所有成员来初始化数组时