java - 使用Java反射类创建对象并在arraylist中使用

标签 java arraylist reflection

我最近开始使用 Java Reflection,但目前停留在这一点上。

所以我有这样的东西:

Class<?> dogClass = Class.forName("com.example.dog");
Object dogObject = dogClass.newInstance();

我想在此数组列表中使用上述对象:

List<Dog> dogList = new ArrayList();

所以在正常情况下:

for(Dog d : dogList) {
....
.... 
}

但是当我尝试使用java反射时,它不起作用..

for(dogObject d : dogList) {
....
.... 
}

谁能帮我解答一下吗?谢谢。

最佳答案

for(dogObject d :dogList) 是错误的。 dogObject 是一个对象而不是类型。将您的 dogObject 添加到 dogList 中,然后像在第一个循环中那样循环它:

Class<?> dogClass = Class.forName("com.example.Dog");
Dog dogObject = (Dog)dogClass.newInstance();
List<Dog> dogList = new ArrayList<Dog>();
dogList.add(dogObject);
for (Dog dog : dogList) {
   ....         
}

(当然你需要添加 try/catch)

关于java - 使用Java反射类创建对象并在arraylist中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381015/

相关文章:

java - Android 中的 Volley API 有什么用?

尝试为类的实例设置成员变量时,Java ArrayList 类抛出异常

try-catch 的 Java ArrayList 问题

reflection - 如何在 go 中嵌入默认实现并引用嵌入类型

java - 如何生成方法签名?

java - 使用 Jersey、jaxb 和 jax-rs 时如何设置 xml 命名空间

java - 使用中断方法终止线程

java - 点击打开最初隐藏的 ListView

java - 如何给java足够的时间给变量赋值?

c# - 类型反射中的重复项目(?)