Hello.
I want to check if the option that the user entered matches an option in the menu. I am using enum to show the options and the user types a corresponding number. But I can not. Let's look at the menu enum and the class I'm testing.
package dominio;
public enum EnumMenuInicial {
CADASTRAR(1), PESQUISAR(2), EXCLUIR(3);
public final int OPCAO;
private EnumMenuInicial(int opcaoEscolhida) {
EnumMenuInicial.OPCAO = opcaoEscolhida;
}
}
import java.util.ArrayList;
import java.util.Scanner;
import dominio.EnumMenuInicial;
public class Clinica {
private static Scanner entrada = new Scanner(System.in);
private static ArrayList<Cliente> clientes = new ArrayList<>();
public static void main(String args[]) {
Clinica.exibirMenuInicial();
int opcao = Clinica.readInt();
}
private static boolean cadastrar() {
System.out.println("Informe o nome");
String nome = entrada.nextLine();
System.out.println("Informe CPF");
int cpf = Clinica.readInt();
System.out.println("Informe telefone");
int telefone = Clinica.readInt();
System.out.println("Informe o estado");
String estado = entrada.nextLine();
System.out.println("Informe a cidade");
String cidade = entrada.nextLine();
Cliente cliente = new Cliente(nome, cpf, telefone, estado, cidade);
boolean inserido = Clinica.clientes.add(cliente);
return inserido;
}
//limpar buffer
private static int readInt() {
int numero = entrada.nextInt();
entrada.nextLine();
return numero;
}
private static void exibirMenuInicial() {
int i = 1;
System.out.println("Escolha uma opção:");
for (EnumMenuInicial opcao : EnumMenuInicial.values()) {
System.out.println(i + ": " + opcao.toString());
i++;
}
}
private static boolean validarOpcao(int opcaoEscolhida) {
int i = 0;
for (EnumMenuInicial opcao : EnumMenuInicial.values()) {
if (opcaoEscolhida == OPCAO) {
return true; }
}
}
return false;
}
}
On line:
if (opcaoEscolhida == OPCAO) {
give the error:
OPCAO can not be resolved to a variable Clinica.java / clinica / src line 61 Java Problem >
If I switch to:
if (opcaoEscolhida == EnumMenuInicial.OPCAO) {
Give the error:
Can not make a static reference to the non-static field EnumMenuInicial.OPCAO Clinica.java / clinica / src line 63 Java Problem >
How can I fix this?