Uma Collection como atributo de classe

Olá galera,
Estou modelando uma classe onde eu tenho um certo Prato, e esse prato alem de ser composto por nome, valorCusto e valorVenda, também é composto por uma lista de ingredientes.
Porém estou tendo problemas em como guardar essa lista dentro da classe Prato.
Gostaria de saber se estou fazendo de maneira correta.
Segue um exemplo do que estou fazendo.

public class Prato {

private String nomePrato;
private ArrayList<Ingredientes> ingredientes;
private double valorVendaPrato;
private double valorCustoPrato;

public String getNomePrato() {
	return nomePrato;
}

public void setNomePrato(String nomePrato) {
	this.nomePrato = nomePrato;
}

public ArrayList<Ingredientes> getIngredientes() {
	return ingredientes;
}

public void setIngredientes(ArrayList<Ingredientes> ingrediente) {
	this.ingredientes = ingrediente;
}

public double getValorVendaPrato() {
	return valorVendaPrato;
}

public void setValorVendaPrato(double valorVendaPrato) {
	this.valorVendaPrato = valorVendaPrato;
}

Seu código parece normal, apenas trocaria a classe ArrayList pela interface List (pacote java.uitl.List) dessa forma você consegue mudar para qualquer tipo de lista garantindo polimorfismo sem precisar mexer na classe Prato…

Qual sua dificuldade?

Era essa duvida mesmo, se estava indo corretamente.
Depois desse post eu dei uma mexida na classe Ingredientes, e pedi para ela me entregar uma ArrayList de ingredientes, e consegui chegar aonde eu queria.
Mas vou fazer essa mudança sim, muito obrigado pela dica.

1 curtida

Só uma correção, este não é um atributo de classe, é um atributo de instância.

Brother você deve estar sempre atento se suas instâncias não estão nulas, uma vez ou outra podem não receber por estarem nulas.

 private List<Ingredientes> ingredientes;

 public List<Ingredientes> getIngredientes() {
      if(ingredientes == null){
        ingredientes = new ArrayList<>();
      }
return ingredientes;
}

public void setIngredientes(List<Ingredientes> ingredientes){
     this.ingredientes = ingredientes;
}