Pessoal,
Vejam se podem me ajudar por favor. Estou com o seguinte problema: Minha classe precisa receber alguns valores em decimais e para não usar o double e ter problema de precisão, decidi usar o BigDecimal.
Havia refatorado meu construtor para receber meus parâmetros BigDecimal dessa forma:
public Candlestick(BigDecimal abertura, BigDecimal fechamento, BigDecimal minimo,
BigDecimal maximo, BigDecimal volume, Calendar data) {
if (abertura == null || fechamento == null || minimo == null || maximo == null
|| volume == null || data == null) {
throw new IllegalArgumentException(
"Nenhum valor pode ser nulo!");
} else if (minimo.compareTo(maximo)>0) {
throw new IllegalArgumentException(
"Valor mínimo não pode ser maior que o valor máximo");
}
this.abertura = abertura;
this.fechamento = fechamento;
this.minimo = minimo;
this.maximo = maximo;
this.volume = volume;
this.data = data;
}
Mas desse jeito, toda vez que fosse instanciar essa classe, teria que passar vários objetos BigDecimal. Então fiz um outro construtor para receber valores double, e transformar em BigDecimal. Segue:
public Candlestick(double abertura, double fechamento, double minimo,
double maximo, double volume, Calendar data) {
if (abertura < 0 || fechamento < 0 || minimo < 0 || maximo < 0
|| volume < 0) {
throw new IllegalArgumentException(
"Nenhum valor pode ser negativo!");
} else if (data == null) {
throw new IllegalArgumentException(
"Data é um campo obrigatório");
} else if (minimo > maximo) {
throw new IllegalArgumentException(
"Valor mínimo não pode ser maior que o valor máximo");
}
this.abertura = BigDecimal.valueOf(abertura);
this.fechamento = BigDecimal.valueOf(fechamento);
this.minimo = BigDecimal.valueOf(minimo);
this.maximo = BigDecimal.valueOf(maximo);
this.volume = BigDecimal.valueOf(volume);
this.data = data;
}
Gostaria de saber qual a melhor abordagem. Manter os 2 construtores? Deixar apenas o que recebe BigDecimal? Ou alguma outra abordagem?
Ah, e já ia me esquecendo, todo os getter dessa classe, devolvem um BigDecimal.
Obrigado pela atenção