java.lang.Array 类提供了动态创建和访问数组元素的各种静态方法。例程
ArrayTest 类的main()方法创建了一个长度为10 的字符串数组,接着把索引位置为5 的元素设为“hello”,然后再读取索引位置为5 的元素的值
一、作为一维数组示例代码:
这里第21行,也可以这样写:Array.setInt(array_2,10,37);
java 代码
- package com.test.reflect;
-
- import java.lang.reflect.Array;
-
- public class ArrayTest {
-
- public static void main(String[] args) throws Exception {
-
- Class clazz = Class.forName("java.lang.String");
-
-
- Object array = Array.newInstance(clazz, 10);
-
-
- Array.set(array, 5, "hello");
-
-
- String str = (String)Array.get(array, 5);
- System.out.println(str);
- }
-
- }
二、作为多维数组对象示例代码
java 代码
- package com.test.reflect;
-
- import java.lang.reflect.Array;
-
- public class ArrayTest2 {
-
- public static void main(String[] args) {
-
-
- int[] dims = new int[] {5,10,15};
-
- Object array = Array.newInstance(Integer.TYPE, dims);
-
-
- Object array_1 = Array.get(array, 3);
-
-
- Object array_2 = Array.get(array_1, 5);
-
-
- Array.set(array_2, 10, 37);
-
- int[][][] value = (int[][][])array;
- System.out.println(value[3][5][10]);
-
- }
-
- }
上面的代码第21行也可以这样写:Array.setInt(array_2,10,37);
分享到:
相关推荐
在Java编程语言中,`java.lang.reflect`包是核心库的一部分,它提供了运行时访问类、接口、字段和方法的能力。这个包对于理解和操作对象的动态特性至关重要,尤其是在实现反射机制时。反射允许我们在程序运行期间...
5. `java.lang.reflect.Array`:处理数组的静态类。 **四、应用场景** 1. **插件化开发**:动态加载插件中的类和资源,无需提前知晓具体实现。 2. **序列化/反序列化**:如JSON库Gson、Jackson,通过反射将对象...
Java反射机制的核心类位于`java.lang.reflect`包中,主要包括以下几类: 1. **Class类**:表示一个类的信息,是反射机制的基础。 2. **Field类**:表示类的成员变量或属性。 3. **Method类**:表示类的方法。 4. **...
- `java.lang.reflect.Array#newInstance()`:创建数组实例。 - `java.lang.reflect.Constructor#newInstance()`:创建实例。 ##### 原型模式 原型模式使用一个现有的实例作为原型,通过复制该原型对象来创建新的...
- `java.lang.reflect.Array`: 封装数组信息的类。 #### 15.2 使用反射获取类信息 ##### 15.2.1 获取Class对象 要使用反射,首先需要获得`Class`对象。有几种常见的方式: 1. **通过对象的`getClass()`方法**: ...
8. **数组操作**:反射还提供了对数组的操作,如`Array.newInstance()`创建数组,`Array.getLength()`获取数组长度,以及`Array.set()`和`Array.get()`来访问数组元素。 Java反射的使用广泛,但也有其潜在的风险。...
3. **Field类**:`java.lang.reflect.Field`表示类的成员变量,可以用来获取或设置类的字段值。例如: ```java Field field = classType.getDeclaredField("fieldName"); field.setAccessible(true); field.get...
- ActionScript 的 `Array` 可以映射到 Java 的 `java.util.Collection` 或数组类型(`java.lang.reflect.Array`)。 - Java 中的集合和数组也能转换为 ActionScript 的 `Array`。 8. **Object** 和 `Map`: - ...
在Java中,反射主要通过`java.lang.Class`,`java.lang.reflect.Method`,`java.lang.reflect.Field`,以及`java.lang.reflect.Constructor`等类来实现。以下是一些关于Java反射的重要知识点: 1. **Class对象**:...
在处理数组时,`java.lang.reflect.Array`类提供了一系列静态方法,用于创建、访问和操作数组。这使得我们可以在运行时动态地操作数组内容,如同直接访问数组一样。 Java 5引入了泛型,但因为类型擦除,运行时无法...
import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] args){ try{ //创建一个元素类型为String,长度为10的数组 Object arr=Array.newInstance(String.class,10)...
3. **集合框架**:书中详细探讨了Java集合框架,包括Array、ArrayList、LinkedList、Vector、Set、Map等各种容器类的使用,以及迭代器、泛型的应用,帮助读者掌握数据结构和算法在实际编程中的应用。 4. **接口与...
3. **反射操作**:`org.apache.commons.lang3.reflect`包提供了对Java反射机制的增强,如`MethodUtils`和`FieldUtils`,使得访问和操作类的成员更加简单。 4. **枚举处理**:`org.apache.commons.lang3.enums`支持...
Java的`java.lang.reflect.Proxy`类和`java.lang.reflect.InvocationHandler`接口用于实现这一机制。 在Java中,反射机制虽然提供了强大的功能,但也带来了一些潜在的问题,如性能损失、安全风险和代码可读性降低。...
import java.lang.reflect.Array; import java.lang.reflect.InvocationTargetException; import java.sql.Timestamp; import java.util.Collection; import java.util.Date; import java.util.Map; import java....
Java反射机制的实现主要依赖于`java.lang.reflect`包中的几个核心类: - **Class类**:表示一个类,是反射机制的核心。通过Class类可以获取类的各种信息,如构造器、方法、字段等。 - **Field类**:表示类的成员...
Java反射机制主要由`java.lang.reflect`包下的多个类共同实现,包括但不限于`Class`、`Field`、`Method`、`Constructor`和`Array`等。 #### 二、Java Reflection API简介 ##### 2.1 Class类 `Class`类是Java反射...
Java反射API主要由`java.lang.Class`、`java.lang.reflect.Method`、`java.lang.reflect.Field`等类组成。通过这些类,我们可以获取类的信息,实例化对象,以及动态调用方法和访问字段。 1. **缓存Class对象**:...