Список обновляется с последними значениями, вставленными в объект - PullRequest
0 голосов
/ 08 марта 2019
List<Cars> allValues = new ArrayList<Cars>();
Cars obj = new Cars();
obj.setKey("merc"); 
obj.setValue("true");
allValues.add(policyOrg1);
obj.setKey("audi"); 
obj.setValue("true");
allValues.add(obj);

У меня есть такой случай, когда мне нужно вставить два значения в мой список, и я использую один и тот же объект, а затем сбрасываю значение после того, как ранее установленные ключ и значение были вставлены в список.Но когда объект переназначается, я вижу, что значение, вставленное в список ранее, обновляется до последнего назначенного значения.Любой способ решения этой проблемы, кроме создания нового объекта и присвоения.

Результатом вышеупомянутой вставки является то, что список заканчивается двумя записями с ключом audi и значением true, как последним вставленным значением.

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я думаю, что лучший подход - модифицировать ваш конструктор класса Cars и передавать значения для объекта через конструктор. А потом вы можете просто создать новый объект в методе .add ().

public Cars(String key,String value){
  //make your stuff here
 }
var allValues = new ArrayList<Cars>();//if you have Java 11 or higher use var
allValues.add(new Cars("merc","true"));

Это должно работать нормально:)

0 голосов
/ 08 марта 2019

просто отредактируйте ваш код так:

List<Cars> allValues = new ArrayList<Cars>();

Cars obj = new Cars();
obj.setKey("merc"); 
obj.setValue("true");

allValues.add(obj);

obj = new Cars(); // you need to create a new object here
obj.setKey("audi"); 
obj.setValue("true");

allValues.add(obj);

Что вы делаете, это добавляете объект в список, затем обновляете тот же объект вместо того, чтобы создавать новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...