2016-11-19 81 views
0

我在想如何更改ArrayList中的對象中的變量。從ArrayList中獲取類

我試過myList.get(i);但這返回<Object>,我不明白該怎麼做。

(基本上)我有什麼:

ArrayList list = new ArrayList(); 
Issue issue = new Issue(); 
list.add(issue); 

我想以後訪問,通過什麼列表:

issue.myString; 

所以要澄清一下,我有class Issue一個實例內ArrayList list,和我要更改issue.myString

+1

演員,其中反對'Issue'例如 - > **((問題)list.get(指數))的myString ** –

+0

大聲笑...我想我試過,但顯然我剛剛搞砸括號括起來...... –

回答

2

你有(至少)兩個選項。

名單僅發出

在這種情況下,你可以使用一個類型的列表:

List<Issue> list = new ArrayList<>(); 
Issue issue = new Issue(); 
list.add(issue); 

這種方式,呼籲像list.get(i)將返回Issue

列表中包含的問題和其他非發行對象

List list = new ArrayList(); 
Issue issue = new Issue(); 
list.add(issue); 
Object object = new Object(); 
list.add(object); 

在這種情況下,你必須檢查對象,首先是一個Issue

Object rawItem = list.get(i); 
if(rawItem instanceof Issue) { 
    Issue issue = (Issue) rawItem; 
    ... 
} 
1

使用打印的列表:

ArrayList<Issue> list = new ArrayList<>(); 
Issue issue = new Issue(); 
list.add(issue); 

現在list.get(i)將返回<Issue>並不僅僅是<Object>