0
In the following code generates the following error:
Exception in thread "main" java.lang.NullPointerException
at pkgClientesPedidosDiogoVinicius.TesteClientesPedidos.cadastrarGerente(TesteClientesPedidos.java:98)
>>>> g1.setTaxaVenda(taxaVenda);
at pkgClientesPedidosDiogoVinicius.TesteClientesPedidos.menu(TesteClientesPedidos.java:47)
>>>> cadastrarGerente();
at pkgClientesPedidosDiogoVinicius.TesteClientesPedidos.main(TesteClientesPedidos.java:17)
>>> menu();
My class:
/*
* PROGRAMA CLIENTES E PEDIDOS
* DATA: MAIO/JUNHO DE 2017
*
*
*/
package pkgClientesPedidos;
import java.util.Scanner;
public class TesteClientesPedidos {
static Gerente g1;
public static void main(String[] args) {
menu();
}
static void menu() {
Scanner leitura = new Scanner(System.in);
int opcao;
do {
System.out.println("PROGRAMA CLIENTES/PEDIDOS - OPÇÕES\n");
System.out.println("----------------------------------\n");
System.out.println("1 - Cadastrar Gerente\n");
System.out.println("2 - Cadastrar Vendedor\n");
System.out.println("3 - Cadastrar Técnico\n");
System.out.println("4 - Mostrar dados dos funcionarios(Gerente/Vendedor/Técnico\n");
System.out.println("5 - Cadastrar Item de Pedido\n");
System.out.println("6 - Cadastrar Pedido\n");
System.out.println("7 - Mostrar Dados de Pedido e Item de Pedido\n");
System.out.println("8 - Cadastrar Gerente Administrativo\n");
System.out.println("9 - Cadastrar Gerente Financeiro\n");
System.out.println("10 - Mostrar dados de Gerente Administrativo e Financeiro\n");
System.out.println("11 - Mostrar cálculo do salário para cada funcionario (Gerente/Vendedor/Técnico\n");
System.out.println("12 - Sobre\n");
System.out.println("13 - Encerrar programa\n");
System.out.println("Informe a opção:\n");
opcao = leitura.nextInt();
switch (opcao) {
case 1:
cadastrarGerente();
break;
case 13:
System.out.println(">>PROGRAMA FINALIZADO");
break;
}
} while (opcao != 13);
leitura.close();
}
public static void cadastrarGerente() {
String nome;
int matricula;
String telefone;
String email;
String cidade;
String estado;
String salario;
double taxaVenda;
Scanner entrada = new Scanner(System.in);
System.out.println("CADASTRAR GERENTE\n");
System.out.print("Nome:........:");
nome = entrada.nextLine();
System.out.println("Matricula:...:");
matricula = entrada.nextInt();
System.out.println("Telefone:....:");
telefone = entrada.next();
System.out.println("Cidade:......:");
cidade = entrada.nextLine();
entrada.nextLine();
System.out.println("E-mail:......:");
email = entrada.nextLine();
System.out.println("Salário:.....:");
salario = entrada.nextLine();
Double.parseDouble(salario);
System.out.println("Estado:......:");
estado = entrada.nextLine();
try {
System.out.println("Taxa Venda:..:");
taxaVenda = entrada.nextDouble();
g1.setTaxaVenda(taxaVenda);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
entrada.close();
g1 = new Gerente(nome, matricula, telefone, email, cidade, estado, Double.parseDouble(salario));
}
}
Are you using the
g1.setTaxaVenda(taxaVenda)
before assigning the value to the variableg1
, That’s why you’re making a mistake. Put thisg1.setTaxaVenda(taxaVenda);
after theg1 = new Gerente...
– Leonardo Santos