使⽤反射机制创建List<String>实例,它的类由第⼀个命令⾏参数指定,其他参数插⼊到列表中。
时间: 2024-03-19 07:46:09 浏览: 70
通过反射获取类的实例
好的,针对你的问题,我可以给出以下代码示例:
```java
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
public class ReflectionDemo {
public static void main(String[] args) {
// 获取List类名
String className = args[0];
// 创建List对象
try {
// 获取List类的Class对象
Class<?> clazz = Class.forName(className);
// 获取List类的构造方法
Constructor<?> constructor = clazz.getConstructor();
// 创建List对象
List<String> list = (List<String>) constructor.newInstance();
// 将其他参数插入到列表中
for (int i = 1; i < args.length; i++) {
list.add(args[i]);
}
// 输出列表内容
System.out.println(list.toString());
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
```
以上代码通过反射机制创建了一个指定类型的List对象,并将命令行参数插入到列表中,最终输出列表内容。需要注意的是,这里的List类型必须有一个无参构造方法。
阅读全文