Oii gente...
Me deparei com um problema muito incomum para mim.
Estou comparando um arrayList
<%!
public boolean verificaExistenciaDaAvaliacao(PeriodoAvaliacao periodoAvaliacao, ArrayList<PeriodoAvaliacao> periodoAvaliacoes) {
for (int i = 0; i < periodoAvaliacoes.size(); i++) {
if ((periodoAvaliacoes.get(i).getAno().equals(periodoAvaliacao.getAno())) && (periodoAvaliacoes.get(i).getQuadrimestre().equals(periodoAvaliacao.getQuadrimestre())){
return false;
}
}
return true;
}
%>
Nesse caso acima, seu eu uso o comparador == da erro.
if ((periodoAvaliacoes.get(i).getAno() == periodoAvaliacao.getAno()) && (periodoAvaliacoes.get(i).getQuadrimestre() == periodoAvaliacao.getQuadrimestre()){
Ele não ve que 2010 é 2010 e quadrimestre 3 é quadrimestre 3. Estranho, alguém pode me explicar isso o porque disso??
A única explicação pláusível é que por ser objeto usamos Equals que é o mesmo caso da String...
Gostaria de perguntar qual o melhor modo de comparar o Objeto inteiro e quando devo usá-lo, já que essas informações eu estou puxando de banco de dados de campos Integer.
Agradeço a Atenção.
Rodrigo Torres Leme