2016-11-19 5 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 (индекс)) туЗЬптд ** –

+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>