Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula de Array - Não consigo fazer o enhanced for ...

Estou tentando alterar o código aprendido na aula, para utilizar o enhanced for, mas estou recebendo o seguinte erro: "Estoque.java:12: error: incompatible types: Item cannot be converted to int for(int x : this.itens){ ^ 1 error"

O que estou fazendo de errado no código abaixo:

class Estoque{
  // array de itens
  Item[] itens;

  void printQtd(){
      for (int i = 0; i < this.itens.length; i++){
          Item item = this.itens[i];
          if (item == null) continue;
          System.out.println(item.descricao + " "+item.qtd);
      }
      //"enhanced for" substitui o length
      for(int x : this.itens){
          System.out.println(x);
      }
  }
}
class Item{
    String descricao;
    int    qtd;
    String lote;

}
class Nff{
    Item[] itens;
    String cliente;
    double valor;
}
class ConfereEstoque{
    public static void main(String[] args){
        Estoque dsfrt  = new Estoque();
        dsfrt.itens    = new Item[10];
        dsfrt.itens[0] = new Item();
        dsfrt.itens[0].descricao = "gelatina..: ";
        dsfrt.itens[0].qtd       = 100;
        dsfrt.itens[1] = new Item();
        dsfrt.itens[1].descricao = "fermento..: ";
        dsfrt.itens[1].qtd       = 250;
        dsfrt.itens[2] = new Item();
        dsfrt.itens[2].descricao = "bolo......: ";
        dsfrt.itens[2].qtd       = 90;

        dsfrt.printQtd();

    }
}

Obrigado.

2 respostas
solução!

Alessandro,

Pelo que eu entendi, itens é um Array de Item, e quando você tenta iterar, você ta tentando setar um Objeto do tipo Item em um int:

for(int x : this.itens){
    System.out.println(x);
}

E isso da dando um erro de incompatibilidade de tipos de variáveis.

Tente alterar seu código para:

for(Item x : this.itens){
    System.out.println(x);
}

Obrigado Priscilla