Criei uma classe hora e estou fazendo um array dessas horas, mas quando adiciono um item no ArrayList ele seta todos os itens anteriores com o valor do ultimo item. Por que isso está acontecendo? Alguem pode me ajudar?
aqui está o código:
public static ArrayList<Hora> selectInterval() {
Hora horaInicio = Seccao.getCurrentUserTimeStart();
Hora horaFim = Seccao.getCurrentUserTimeEnd();
int intervalo = Seccao.getTempoAtendimento();
ArrayList<Hora> intervalos = new ArrayList<Hora>();
Hora horaAux = new Hora();
if (intervalo > 1) {
intervalos.add(horaAux);
while (!CalculaHora.IsBigger(horaAux, horaFim)) {
horaAux = CalculaHora.SomaHora(horaAux, intervalo);
intervalos.add(horaAux);
}
}
return intervalos;
}
Exemplo:
[]
qnd adiciono a hora 10:00;
[10:00]
quando adionio a hora 8:00;
[8:00, 8:00]
quando adiciono a hora 12:00
[12:00, 12:00, 12:00]
quando adciono a hora 5:00
[5:00, 5:00, 5:00, 5:00]
quando adicono a hora 20:00
[20:00, 20:00, 20:00, 20:00, 20:00]
e assim por diante… quando na verdade a saida correta para a inserção desses valores nesta mesma ordem seria:
[10:00, 8:00, 12:00, 5:00, 20:00]

mais intrigante pra mim, é que se em qualquer parte do codigo, o valor da instancia for alterada, o valor das instância dentro do array mudão também…