consegui resolver o problema da seguinte forma :
[code] public static ArrayList selectInterval() {
Hora horaInicio = new Hora(Seccao.getCurrentUserTimeStart());
Hora horaFim = Seccao.getCurrentUserTimeEnd();
int intervalo = Seccao.getTempoAtendimento();
ArrayList intervalos = new ArrayList();
if (intervalo > 1) {
intervalos.add(new Hora(horaInicio));
while (!CalculaHora.isBigger(horaInicio, horaFim)) {
intervalos.add(new Hora(CalculaHora.somaHora(horaInicio, //observe aqui que ao invés de criar uma variável e adiciona-la ao arrayList eu crio uma
intervalo))); //nova instancia a cada laço de repetição. alterei o construtor para receber um tipo hora
} // e modificar a nova instância criada. Dessa forma consegui fazer o compilador entender
int size = intervalos.size() - 1; // que ele deveria conlocar instâncias diferentes com diferentes valores, ao invés de colocar
intervalos.remove(size); // uma unica instância várias vezes.
}
return intervalos;
}[/code]
aqui vai o construtor do método Hora:
/*
*Observe aqui que sobrescrevo o construtor 3 vezes, um para receber hora e minuto, outro para receber de hora até segundos, e por
*fim um para receber um tipo hora e setar seus valores para a referida Hora passada para o construtor.
*/
public Hora(Hora hora){
this.hora = hora.getHora();
this.minuto = hora.getMinuto();
this.segundo =hora.getSegundo();
}
public Hora (int hora, int minuto){
this.hora = hora;
this.minuto = minuto;
}
public Hora (int hora, int minuto, int segundo){
this.hora = hora;
this.minuto = minuto;
this.segundo = segundo;
}
apesar de estar funcionado, gostaria de saber se fiz correto, se não, qual seria o padrão de desenvolvimento neste caso?
so para título de curiosidade aqui vai o metodo somaHora(dessa vez com letra minúscula rsrsr), é como disse este método esta retornando
corretamente o um tipo hora acrescido dos minutos passados como argumneto para ele.
public static Hora somaHora (Hora hora, int minutosAdicionados){
int aux = 0;
int minuto = hora.getMinuto();
int horas = hora.getHora();
if(minuto+minutosAdicionados<60){
minuto += minutosAdicionados;
}else{
aux = (minuto+minutosAdicionados)/60;/*comporta o execesso de horas contidas na soma total de minutos
* esse laço é desnecessário apenas enconomiza processamento*/
horas += aux;
minuto = ((minuto+ minutosAdicionados) -(aux*60));/*subtrai os minutos da hora sem a fraçao, com os minutos da
* hora com a fração, isso para se chegar à quantidade de minutos
*excedidos*/
}
hora.setHora(horas);
hora.setMinuto(minuto);
return hora;
}
ps.:Quero parabenizar esse forum que tem me ajudado muito, e tem ajudado muitas outras pessoas também, com isso tem contribuido de forma notória para fortalecer a comunidade java!!!
ESTÃO DE PARABÉNS!!!