Variable Enclosing Scope - Java SE

0

Hello! I'm developing a small store-caching interface, however when I use stream to fetch a customer-entered ID, the variable idEstoque has a scope error. Here is the code:

    public interface IestoqueViewCadastroArmazem {

public static void run() {


String idEstoque = null;

    while (true) {
        ArmazemBuilder armazem = new Armazem.ArmazemBuilder();
        System.out.println("Por favor, digite o nome do novo armazem:\n");
        System.out.print("->  ");

        armazem.armazem_Nome(Iscanner.nextLine()).build();

        if (!armazem.build().getArmazem_Nome().isEmpty()) {

            Estoque estoque = new Estoque();
            List<Estoque> estoqueList = EstoqueRules.listarRule(estoque);
            if (estoqueList.size() > 0) {
                while (true) {
                    idEstoque = "";
                    System.out
                            .println("Por favor, digite a id de um estoque para este armazem, "
                                    + "deixe em branco para nenhum ou digite "
                                    + "LISTARESTOQUE para listar os estoques disponíveis:\n");
                    System.out.print("->  ");


idEstoque = Iscanner.nextLine();


Boolean boo = estoqueList.stream()
                            .anyMatch(p -> p.getId() == Integer.parseInt(idEstoque));


    if (boo == true) {
                        armazem.estoque(Integer.parseInt(idEstoque));
                        break;
                    } else if (idEstoque.equalsIgnoreCase("LISTARESTOQUE")) {
                        IimprimeListaConsole.imprimeListaConsole(estoqueList);
                    } else if (idEstoque.isEmpty()) {
                        break;
                    }
                }
            } else {
                ArmazemRules.cadastrarRule(armazem.build());
                break;
            }
            break;
        } else {
            System.out.println("Campo em branco! digite o nome do armazem!");
        }
    }
}

}

The following is the error:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Local variable idEstoque defined in an enclosing scope must be final or effectively final

at viewTest.estoqueView.interfacesAction.IestoqueViewCadastroArmazem.<clinit>(IestoqueViewCadastroArmazem.java:36)
at viewTest.estoqueView.IestoqueViewArmazem.menuEstoqueViewArmazem(IestoqueViewArmazem.java:17)
at viewTest.estoqueView.IestoqueView.menuEstoqueView(IestoqueView.java:22)
at viewTest.Main.main(Main.java:72)

Cost to believe that I will need to do a for to check the attribute of each object in the list.

    
asked by anonymous 20.10.2017 / 07:19

0 answers