Я знаю, эта тема очень избита, но ...Pass по значению или ссылки
Я программирования приложения для андроид в Java, но я из C++, где вопрос о стоимости или ссылки очень явный. Проблема заключается в том:
Изначально у меня есть класс с именем Item, который имеет переменную общественного Int ID.
В классе под названием ListingItem, у меня есть список из статического списка с два вещи добавила к нему, каждому присвоил свою переменной ID величиной . В этом классе есть также функция public static List getList(), которая возвращает Список, в частности, Список этого класса.
В другом классе, называется Фрагмент, у меня есть Список ITEMLIST и функция частный Список GetList(), который возвращаетСписок.
GetList() класса фрагмента делает следующее:
private List <Item> getList()
{
List<Item> list = ListingItem.getList() // copy list from ListingItem.list
List<Item> returnList = new ArrayList<Item>();
returnList.add(list.get(0);
returnList.add(list.get(1); // copy to returnList two Item objects from list (that copied from ListingItem.list)
returnList return;
}
Другая функция класса Фрагмент использование Fragment.getList() так:
private functionOfFragment()
{
List<Item> ItemList = getList();
itemList.get(0).ID = 2;
itemList.get(1).ID = 2; // changing from 1 to 2
}
Однако , значение ListingItem.list.get (0) .ID и Список Item.list.get (0) .ID - также значение . Как это возможно?
obs: ЭТОТ КОД ТОЛЬКО ПРЕДСТАВИТЕЛ, ПРОБЛЕМА НЕ СИНТАКСИСНАЯ ЭРОС!
"каждый присваивает своей переменной ID значение 1". Я не думаю, что у вас действительно есть два объекта в вашем статическом списке. Вы называете «новый» дважды? –
Нужно закрыть parens в 'returnList.add (list.get (0);' –
. Список статических списков- из ListItem имеет два объекта Item, но как Fragment может изменить его значение ID, поскольку он получил только копии объектов Item fromListItem.list? –