Então galera, estava pensando outro dia quando cai na seguinte pergunta:
Supondo que tenha a seguinte classe:
public class Teste{
private final Date dataAgora = new Date();
public Date getData(){
return dataAgora;
}
}
Até ai nada de mais, mas se fizer o seguinte:
public class MainTeste{
public static void main(String ars[]){
Teste t = new Teste();
Date d = t.getData();
d.setHour(10);
System.out.println(t.getData());
}
}
Ao fazer o setHour eu estou alterando o valor que eu tenho! Nada que não fosse esperado mas eis a minha pergunta.
Existe um jeito de eu deixar o valor da referencia “final”??? Como o caso do String?
Teria um outro jeito tirando fazer um return dataAtual.clone(); para resolver este problema?
falou galera