java - 如何从 ArrayList 中获取类实例?

标签 java

我是 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/

相关文章:

java - 当我将 JSON 从 Firebase 转换为 Java 对象时,为什么会得到 "Failed to bounce to type"?

java - BufferedReader 在读取 CSV 时跳过字段并分配给不同类型

java - st nd rd th 中的开关运算符

java - 在数据库操作上发布事件

android - 在同一台机器上编译 AOSP 并运行 Android Studio,可能的情况吗?

java - 带有 not 的高级正则表达式

java - 将 UTC 时区转换为 EST 时区

java - 如何将输入字符串的 4 字节哈希创建为十六进制字符串

java - 为什么出现 java.io.NotSerializedException : javax. swing.plaf.metal.MetalFileChooserUI?

java - 如何使这个接口(interface)作为这个参数的类型在分配给实现该接口(interface)的对象时不抛出 "incompatible types"?