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

Já revi a aula várias vezes e meu código diverge

[package br.com.alura;

import java.util.ArrayList;

public class TestandoListas {

    public static void main(String[] args) {
        String aula1 = "Conhecendo mais de listas";
        String aula2 = "Modelando a classe Aula";
        String aula3 = "Trabalhando com Cursos e Sets";
        
        ArrayList<String> aulas = new ArrayList<>();
        aulas.add(aula1);
        aulas.add(aula2);
        aulas.add(aula3);
        
        System.out.println(aulas);	
        aulas.remove(0);
        System.out.println(aulas);
        
        for(String aula : aulas) {
            System.out.println("Aula: " + aula);
            
            String primeiraAula = aulas.get(0);
            System.out.println("A primeira aula é " + primeiraAula);
        
        for(int i = 0; i < aulas.size(); i++ ) {
            System.out.println("aula : " + aulas.get(i));
        }
        
        System.out.println(aulas.size());
        
        aulas.forEach(aula -> { // ERRO NESTA LINHA
            System.out.println("Percorrendo:");
            System.out.println("Aula" + aula);
        });	
        }
    
    

O erro diz: Lambda expression's parameter aula cannot redeclare another local variable defined in an enclosing scope.

at br.com.alura.TestandoListas.main(TestandoListas.java:33)

Por favor, eu segui os passos corretamente mas divirjo nisso do Paulo. Eu realmente não sei como proceder agora. Já tentei comentar o primeiro for.

2 respostas

Comentei os dois Fors (String e int) e deu certo. Mas no vídeo o Paulo não comenta, eu acredito. De qualquer maneira, vamos nessa!

solução!

Olá tudo bem ?

Esse erro esta sendo causado pois o aulas.forEach esta dentro do escopo do primeiro for assim causando um conflito na variável por conta da variavel aula que foi definida no primeiro for. Para que funcione é só alterar o local onde o primeiro for e finalizado como no codigo a baixo

public class Main {

    public static void main(String[] args) {
        String aula1 = "Conhecendo mais de listas";
        String aula2 = "Modelando a classe Aula";
        String aula3 = "Trabalhando com Cursos e Sets";
        
        ArrayList<String> aulas = new ArrayList<>();
        aulas.add(aula1);
        aulas.add(aula2);
        aulas.add(aula3);
        
        System.out.println(aulas);	
        aulas.remove(0);
        System.out.println(aulas);
        
        for(String aula : aulas) {
            System.out.println("Aula: " + aula);
            
            String primeiraAula = aulas.get(0);
            System.out.println("A primeira aula é " + primeiraAula);
        
            for(int i = 0; i < aulas.size(); i++ ) {
                System.out.println("aula : " + aulas.get(i));
            }
        
        } // Colocar essa chave aqui
        System.out.println(aulas.size());
        
        aulas.forEach(aula -> { 
            System.out.println("Percorrendo:");
            System.out.println("Aula" + aula);
        });	
        // Revemor a chave que estava aqui
    }
}
Espero ter ajudado.