`
Brucegaochina
  • 浏览: 40634 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用反射创建一个数组

阅读更多
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 反射中操作数组

    总结来说,Java反射提供了对数组的动态操作能力,包括创建数组、设置和获取数组元素、以及处理类中声明的数组字段。这种能力使得代码更加灵活,但也增加了潜在的错误风险,因此在使用时应谨慎并充分测试。

    C# 维数组转换为DataTable 的三个方法

    4. 对于每个元素,创建一个新的 `DataRow` 并设置该行的值为当前数组元素的值。 5. 将新创建的行添加到 `DataTable` 中。 6. 返回填充后的 `DataTable`。 #### 方法二:多列数据转换 **描述**:当有多列数据需要...

    Java技术对接收数组参数的成员方法进行反射

    以下是一个简单的示例代码,演示了如何使用反射调用一个接受数组参数的方法: ```java import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws Exception { // ...

    java反射全解(反射原理+反射API详解+反射与数组+反射与泛型+反射源码与性能开销+反射优缺点+反射与内省)

    通过反射机制,可以在运行时判断任意一个对象所属的类、构造任意一个类的对象、判断任意一个类所具有的成员变量和方法、调用任意一个对象的方法。 反射机制的原理是基于类加载的流程。类加载的完整过程包括编译、...

    深入反射生成数组的详解

    这段代码创建了一个长度为10的整数数组,并使用`SetValue`方法逐个赋值,然后使用`GetValue`方法打印出所有元素。这里同样需要注意,由于`SetValue`和`GetValue`都是静态方法,因此在调用时需要提供`typeof(object)`...

    C#将对象数组转换成DataSet使用案例 c#经典案例.pdf

    首先,需要创建一个DataSet对象,并将对象数组的每个对象的属性信息添加到DataSet中的数据表中。这里使用了反射技术,通过 PropertyInfo[] pis = t.GetProperties(); 获取对象的每个属性,然后将其添加到DataSet中的...

    java--数组.txt

    值得注意的是,数组的长度是一个固定值,在创建数组时就已经确定,并且不能改变。 #### 数组的限制 Java数组的最大长度受到虚拟机限制,理论上最大长度为`Integer.MAX_VALUE`(即2147483647),这是因为数组长度是...

    实例185 - 自定义泛型化数组类

    "实例185 - 自定义泛型化数组类"是一个关于如何创建和使用自定义泛型数组类的示例,这个主题将深入探讨泛型、数组以及两者的结合。 首先,我们需要理解泛型的基本概念。泛型是Java 5引入的一个重要特性,它允许我们...

    把实体类数组转换为DataTable C#

    当我们有一个实体类数组,可能是因为我们从数据库查询了数据并将其封装在实体类对象中,然后想要将这些数据转换成DataTable,以便进行进一步的数据操作或绑定到控件上。 要实现这个转换,我们需要以下步骤: 1. ...

    怎样用Jvm处理Java数组.doc

    当我们创建一个Java数组时,例如`int[] a = new int[10];`,实际上创建了一个对象,这个对象的类是由JVM动态生成的。在这个例子中,数组类被表示为`[I`,这并不是一个标准的Java类名,而是JVM内部使用的表示方式。...

    按钮数组(VC+Unicon)

    2. **数组存储**:创建一个数组来存储按钮的句柄或其他标识符,例如`buttonHandles := array(5)` 3. **事件处理**:使用监听器(listener)或者事件循环来捕获按钮的点击事件。在事件回调中,可以根据触发事件的...

    实例讲解Java编程中数组反射的使用方法

    以下是一个使用`ArrayReflect`工具类的示例,它展示了如何使用反射来操作数组: ```java public class ArrayReflect { public static void printArray(Object array) { Class&lt;?&gt; elementType = array.getClass()....

    Java数组练习题(带答案).doc

    如果要创建原数组的一个副本,应该使用`System.arraycopy()`方法,示例如下: ```java int[] a = new int[]{1, 2, 3, 4, 5}; int[] b = new int[5]; System.arraycopy(a, 0, b, 0, a.length); ``` 数组的初始化...

    关于反射机制的面试题.

    首先,可以使用 `new` 关键字来创建一个数组,并指定其长度和类型,例如 `int i[] = new int[12];`、`Class c[] = new Class[12];`、`String s[] = new String[12];`。 其次,可以使用初始化值来创建一个数组,例如...

    java反射机制学习(四):通过反射执行方法、操作属性、操作数组中的数据

    Java反射机制是Java编程语言中一个强大的特性,它允许运行时动态地获取类的信息并进行操作,如创建对象、调用方法、访问属性以及处理数组等。在本篇讲解中,我们将深入理解如何通过反射来执行方法、操作属性以及处理...

    Java使用反射操作数组示例

    首先,我们来看一下Java中如何使用反射创建数组。创建数组的方法是通过Array类的newInstance方法。这个方法需要至少两个参数:第一个参数是数组元素的类类型(Class),第二个参数是数组的长度。如果需要创建多维...

    易语言源码易语言判断数组维数源码.rar

    在实际编程中,我们可能需要动态地获取一个已经创建的数组的维数,这通常需要用到反射或者特定的系统函数。 在易语言中,没有内置的函数可以直接获取数组的维数,因此需要自定义方法来实现。从提供的源码中,我们...

    C#通过反射创建自定义泛型

    这段代码首先定义了`GenericsSimple`泛型类,然后在`Main`方法中,使用反射创建了一个`GenericsSimple, int&gt;`的实例。注意,为了确保正确地处理泛型类型参数,我们需要对`typeName`进行适当的替换,将`"[" + arg....

    java反射与泛型综合例子

    在这个示例中,`createAndInvoke`方法接受一个类名字符串、一个方法名字符串和任意数量的参数,然后使用反射创建该类的实例,并调用指定的方法。`getTypes`方法用于获取参数的类型数组,这是为了匹配`getMethod`方法...

Global site tag (gtag.js) - Google Analytics