我最近开始使用 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/