import java.lang.reflect.Array;
import java.util.Random;
public class CreateArrayWithReflection {
/**
* @param args
* @author Bruce
* @since 1.0, 08/19/11
*/
public static void main(String[] args) {
Object array = Array.newInstance(int.class, 3);
printType(array);
fillArray(array);
displayArray(array);
}
private static void printType(Object object)
{
Class type = object.getClass();
if(type.isArray())
{
Class elementType = type.getComponentType();
System.out.println("Array of: " + elementType);
System.out.println("Array size: " + Array.getLength(object));
}
}
private static void fillArray(Object array)
{
int length = Array.getLength(array);
Random generator = new Random(System.currentTimeMillis());
for(int i = 0; i < length; i++)
{
int random = generator.nextInt();
Array.setInt(array, i, random);
}
}
private static void displayArray(Object array)
{
int length = Array.getLength(array);
for(int i = 0; i < length; i++)
{
int value = Array.getInt(array, i);
System.out.println("Position: " + i + ", value: " + value);
}
}
}
分享到:
相关推荐
总结来说,Java反射提供了对数组的动态操作能力,包括创建数组、设置和获取数组元素、以及处理类中声明的数组字段。这种能力使得代码更加灵活,但也增加了潜在的错误风险,因此在使用时应谨慎并充分测试。
4. 对于每个元素,创建一个新的 `DataRow` 并设置该行的值为当前数组元素的值。 5. 将新创建的行添加到 `DataTable` 中。 6. 返回填充后的 `DataTable`。 #### 方法二:多列数据转换 **描述**:当有多列数据需要...
以下是一个简单的示例代码,演示了如何使用反射调用一个接受数组参数的方法: ```java import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws Exception { // ...
通过反射机制,可以在运行时判断任意一个对象所属的类、构造任意一个类的对象、判断任意一个类所具有的成员变量和方法、调用任意一个对象的方法。 反射机制的原理是基于类加载的流程。类加载的完整过程包括编译、...
这段代码创建了一个长度为10的整数数组,并使用`SetValue`方法逐个赋值,然后使用`GetValue`方法打印出所有元素。这里同样需要注意,由于`SetValue`和`GetValue`都是静态方法,因此在调用时需要提供`typeof(object)`...
首先,需要创建一个DataSet对象,并将对象数组的每个对象的属性信息添加到DataSet中的数据表中。这里使用了反射技术,通过 PropertyInfo[] pis = t.GetProperties(); 获取对象的每个属性,然后将其添加到DataSet中的...
值得注意的是,数组的长度是一个固定值,在创建数组时就已经确定,并且不能改变。 #### 数组的限制 Java数组的最大长度受到虚拟机限制,理论上最大长度为`Integer.MAX_VALUE`(即2147483647),这是因为数组长度是...
"实例185 - 自定义泛型化数组类"是一个关于如何创建和使用自定义泛型数组类的示例,这个主题将深入探讨泛型、数组以及两者的结合。 首先,我们需要理解泛型的基本概念。泛型是Java 5引入的一个重要特性,它允许我们...
当我们有一个实体类数组,可能是因为我们从数据库查询了数据并将其封装在实体类对象中,然后想要将这些数据转换成DataTable,以便进行进一步的数据操作或绑定到控件上。 要实现这个转换,我们需要以下步骤: 1. ...
当我们创建一个Java数组时,例如`int[] a = new int[10];`,实际上创建了一个对象,这个对象的类是由JVM动态生成的。在这个例子中,数组类被表示为`[I`,这并不是一个标准的Java类名,而是JVM内部使用的表示方式。...
2. **数组存储**:创建一个数组来存储按钮的句柄或其他标识符,例如`buttonHandles := array(5)` 3. **事件处理**:使用监听器(listener)或者事件循环来捕获按钮的点击事件。在事件回调中,可以根据触发事件的...
以下是一个使用`ArrayReflect`工具类的示例,它展示了如何使用反射来操作数组: ```java public class ArrayReflect { public static void printArray(Object array) { Class<?> elementType = array.getClass()....
首先,可以使用 `new` 关键字来创建一个数组,并指定其长度和类型,例如 `int i[] = new int[12];`、`Class c[] = new Class[12];`、`String s[] = new String[12];`。 其次,可以使用初始化值来创建一个数组,例如...
Java反射机制是Java编程语言中一个强大的特性,它允许运行时动态地获取类的信息并进行操作,如创建对象、调用方法、访问属性以及处理数组等。在本篇讲解中,我们将深入理解如何通过反射来执行方法、操作属性以及处理...
首先,我们来看一下Java中如何使用反射创建数组。创建数组的方法是通过Array类的newInstance方法。这个方法需要至少两个参数:第一个参数是数组元素的类类型(Class),第二个参数是数组的长度。如果需要创建多维...
在实际编程中,我们可能需要动态地获取一个已经创建的数组的维数,这通常需要用到反射或者特定的系统函数。 在易语言中,没有内置的函数可以直接获取数组的维数,因此需要自定义方法来实现。从提供的源码中,我们...
在这个示例中,`createAndInvoke`方法接受一个类名字符串、一个方法名字符串和任意数量的参数,然后使用反射创建该类的实例,并调用指定的方法。`getTypes`方法用于获取参数的类型数组,这是为了匹配`getMethod`方法...
以下是一个使用泛型参数类型构造数组的示例: ```java public class Test { public static void main(String[] args) { String a = "ccc"; String[] ar = creArray(a); for (String art : ar) System.out....
这通常通过创建一个`DataTable`实例,然后遍历实体数组,将每个实体的属性值添加到新的`DataRow`中实现。以下是一个示例代码: ```csharp using System; using System.Data; using System.Collections.Generic; ...