我是 Java 的新手,我使用的代码大部分不是我自己的,所以请多多包涵...
我有一个数组列表,其中包含同一个类的几十个实例,我想从中依次提取一些变量的值。
我已经创建了一个迭代器并且可以愉快地迭代数组列表,当我尝试提取类实例时问题就来了。使用 .get(index) 返回一个对象,我不知道如何将对象转换为类类型以访问变量或以其自己的类型提取实例。
有人可以建议如何解决这个问题吗?
提前致谢。
编辑:抱歉,我应该在一开始就包含代码。
ArrayList TopicResults = results.getTopicResults(TopicNum);
ListIterator TopicResultsiter = TopicResults.listIterator();
while(TopicResultsiter.hasNext()){
int idx = TopicResultsiter.nextIndex();
ResultsList.Result result = TopicResults.get(idx);
String DocID = result.docID;
System.out.println(DocID);
}
最佳答案
只需使用转换:
MyClass classInstance = (MyClass)myArray.get(0);
假设列表中所有实例的类型都是MyClass
否则你可能会得到 ClassCastException
使用泛型迭代应该更容易也更安全:
List<MyClass> myList = new ArrayList<MyClass>();
for (MyClass classInstance : myList) {
classInstance.doSomething();
}
<>
所包含的类型指定允许存储在列表中的对象类型,这样在编译时就可以安全地使用列表成员而无需检查它们的类型。 (从 J2SE 1.5+ 开始可用)
关于java - 如何从 ArrayList 中获取类实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940007/