Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Eclipse nao entende o foreach

Fala pessoal blz? Quando eu digito fore e aperto Ctrl + Espaço o eclipse esta colocando o codigo abaixo:

                for (Conta conta : lista) {

                }

Como podem verificar ele me traz um for, se eu coloco na mao o foreach ele para de compilar, se deixar somente o for ele compila e executa normalmente o sort.

Alguem sabe dizer se hoje em dia o foreach foi incluido no for, nao necessitando mais declara-lo como foi demonstrado no video?

Abaixo para curiosidade segue o meu codigo nao compilando quando utilizo foreach

package br.com.bytebank.banco.test.util;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

import br.com.bytebank.banco.modelo.Conta;
import br.com.bytebank.banco.modelo.ContaCorrente;
import br.com.bytebank.banco.modelo.ContaPoupanca;

public class Teste {

        public static void main(String[] args) {

                Conta cc1 = new ContaCorrente(22, 33);
                cc1.deposita(333.0);

                Conta cc2 = new ContaPoupanca(22, 44);
                cc2.deposita(444.0);

                Conta cc3 = new ContaCorrente(22, 11);
                cc3.deposita(111.0);

                Conta cc4 = new ContaPoupanca(22, 22);
                cc4.deposita(222.0);

                List<Conta> lista = new ArrayList<>();
                lista.add(cc1);
                lista.add(cc2);
                lista.add(cc3);
                lista.add(cc4);

                foreach (Conta conta : lista) {
                    System.out.println(conta);
                }

                NumeroDaContaComparator comparator = new NumeroDaContaComparator();

                System.out.println("---------");

                lista.sort(comparator);

                for (Conta conta : lista) {
                    System.out.println(conta);
                }
        }
}


class NumeroDaContaComparator implements Comparator<Conta> {

    @Override
    public int compare(Conta c1, Conta c2) {
            if(c1.getNumero() < c2.getNumero()) {
                return -1;
            }
            if(c1.getNumero() > c2.getNumero()) {
                return 1;
            }
        return 0;
    }
}


1 resposta
solução!

Olá Anderson ...

No Java não existe a palavra reservada foreach. Ela apenas aparece como um atalho no Eclipse para o comando for que itera a partir de uma coleção. Já trabalho há algum tempo com a linguagem, não me recordo de ter visto a palavra foreach em código. Espero ter ajudado, abraços ...