簡體   English   中英

如何迭代存儲為 Object 類型的 Java 集合?

[英]How to iterate over a Java collection which is stored as Object type?

假設我有一個定義為 A 類的列表:

Object list = new ArrayList<A>();

我想迭代這個。 是否可以? 如果是,那么如何? 即使我使用反射找到列表的類型,我也不會進入 A 類。另外,請注意,我不知道 A 類是什么。 我只有清單。

如果您按照您顯示的方式實例化ArrayList (您希望將其視為Object - 此類不允許迭代,實現Iterable接口的類提供此功能),然后您需要迭代其元素,您可以施放listObjectIterable ,這樣反復可用的list

    for(A a : (Iterable<A>) list) {
        // do stuff
    }

或者當你需要一個迭代器迭代list元素時:

    Object list = new ArrayList<A> ();
    Iterator<A> it = ((Iterable<A>)list).iterator();

您可能需要查看 Java API 文檔以在此處閱讀有關 Iterable 接口的更多信息。

編輯:由於Federico Peralta Schaffnerluk2302 的有用建議,對這個答案進行了編輯。

我找到了一種方法。 我做了這樣的事情:

List<?> list1 = (List<?>) list;

現在我可以迭代為,

for(Object o : list1) {
// code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM