Eu tenho na aplicação uma lista de objetos “ReportDiarioTrabalho”.
Em um certo momento eu preciso carregar um objeto do tipo “ReportDiarioTrabalho” com a primeira ocorrência dessa lista e alterar algumas informações desse objeto.
O problema é que, quando eu altero o objeto, a primeira posição da lista também altera e vice-versa.
Sei que estou fazendo errado, pois assim crio um ponteiro para a lista… mas não sei como fazer isso para que possa alterar eles independentes.
ReportDiarioTrabalhotmp=lista.get(0); // gravo em um objeto temporario a primeira linha tmp.setSaldo(0.0); // ao fazer isso a lista.get(0) do campo saldo tb altera
Você precisa criar uma nova instância de ReporDiarioTrabalho, usando o new. E faz essa instância receber o valor da lista, desse modo o valor da variável esta em uma posição diferente das instâncias da lista
A
antoniobraga
Oi Matheus,
Não funcionou. Veja se está certo, pois fiz assim:
Quando você coloca o = você está atribuindo a instância do objeto.
Se você fizer um print na variavel tmp terá um valor, quando você atribui esse valor ao da lista, esse valor irá alterar e ficará igual a da entidade da lista.
Para adquirir somente os valores dos atributos em uma outra instância, pode ser feitor de duas formas:
Criar um contrutor no ReportDiarioTrabalho que receba como parametro a entidade ReportDiarioTrabalho/ou passar os atributos como paramêtro.
Você pode setar os atributos manualmente pelos setters.
A
antoniobraga
Perfeito Matheus. Usei a primeira opção e passei para o construtor.
Funcionou!
Muito obrigado!