Neste caso eu inicializei o atributo data com a data atual e criei o método recebendo a data como parametro, no main, se eu nao chamo o metodo, ele traz a data atual, caso eu chame o metodo e passe uma data, ele traz a data informada, gostaria de saber se está correto desta forma tbm?
package br.com.alura.designpatterns.builder;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
public class NotaFiscalBuilder {
private String razaoSocial;
private String cnpj;
private double valor;
private double impostos;
private List<ItemDaNota> todosItens = new ArrayList<>();
private LocalDateTime data = LocalDateTime.now();
private String observacoes;
public NotaFiscalBuilder paraEmpresa(String razaoSocial) {
this.razaoSocial = razaoSocial;
return this;
}
public NotaFiscalBuilder comCnpj(String cnpj) {
this.cnpj = cnpj;
return this;
}
public NotaFiscalBuilder comItem(ItemDaNota item) {
todosItens.add(item);
valor += item.getValor();
impostos += item.getValor() * 0.05;
return this;
}
public NotaFiscalBuilder naData(LocalDateTime data) {
this.data = data;
return this;
}
public NotaFiscalBuilder comObservacoes(String observacoes) {
this.observacoes = observacoes;
return this;
}
public NotaFiscal build() {
return new NotaFiscal(razaoSocial, cnpj, valor, impostos, data, observacoes, todosItens);
}
}