Olá! Estou desenvolvendo uma pequena interface de cadastro de armazens, entretanto ao utilizar stream para buscar um ID informado pelo cliente, a variavel idEstoque apresenta erro de escopo. Segue abaixo o código:
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!");
}
}
}
}
Segue abaixo o erro:
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)
Custo a acreditar que precisarei fazer um for para verificar o atributo de cada objeto da lista. Alguma luz?
Agradeço desde já.