java反射创建list
时间: 2023-08-23 07:05:06 浏览: 149
可以使用Java的反射机制创建一个List对象,具体步骤如下:
1. 获取List的Class对象
```java
Class<?> listClass = Class.forName("java.util.List");
```
2. 获取List实现类的Class对象
假设我们要创建一个ArrayList对象,则需要获取其Class对象:
```java
Class<?> arrayListClass = Class.forName("java.util.ArrayList");
```
3. 创建List对象
使用newInstance()方法创建一个List对象:
```java
List<Object> list = (List<Object>) arrayListClass.newInstance();
```
这样就可以创建一个空的ArrayList对象了。如果想要创建带有初始容量的ArrayList对象,则可以使用带有int参数的构造函数:
```java
Constructor<?> c = arrayListClass.getConstructor(int.class);
List<Object> list = (List<Object>) c.newInstance(10);
```
这样就创建了一个初始容量为10的ArrayList对象。
相关问题
Java 反射list
Java 反射可以用于操作 list 类型的对象。可以通过反射获取 list 类型的对象的属性、方法、泛型等信息,从而动态地操作 list 类型的数据。你可以通过反射 API 中的类、方法、字段等进行 list 对象的增加、删除、修改等操作。同时,反射也可以用于动态地创建 list 对象并初始化其中的元素。
通过反射创建list
可以使用 Java 中的 Class 类的 getConstructor() 和 newInstance() 方法来创建 list,示例如下:
```java
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
public class ReflectListCreation {
public static void main(String[] args) throws Exception {
Class<?> clazz = ArrayList.class;
Constructor<?> constructor = clazz.getConstructor();
List<?> list = (List<?>) constructor.newInstance();
System.out.println(list);
}
}
```
这段代码使用反射获取了 ArrayList 类的构造函数,然后通过 newInstance() 方法创建了一个 ArrayList 实例。可以通过这种方式创建任何类型的 List。