繁体   English   中英

如何从ArrayList获取类实例?

[英]How To Get A Class Instance From ArrayList?

我是Java新手,我正在使用的代码主要不是我自己的代码,所以请耐心等待...

我有一个包含相同类的几十个实例的arraylist,我想从中依次提取一些变量的值。

我已经创建了一个迭代器并且可以在arraylist上愉快地迭代,当我尝试提取类实例时问题就出现了。 使用.get(index)返回一个Object,我不知道如何将Object转换为类类型以访问变量或以自己的类型提取实例。

任何人都可以建议如何解决这个问题?

提前致谢。

编辑:抱歉,我应该在第一个实例中包含代码。

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+获得)

MyType object = (MyType) list.get(index);

您可以将ArrayList的“get”方法返回的对象直接分配给与ArrayList相同类型的属性。

例如,如果你有

ArrayList<MyType> myList;

只是用

MyType myObjectf = myList.get(0);

...应该没有明确的类型转换

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM