Null.point.Exception when executing another class method

Asked

Viewed 62 times

0

I’m running this code:

execution class

package aloiexecv2;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 *
 * @author root
 */
public class test {

    private static Variaveis variaveis;
    private static Dados dados;
    private static Cadastrar cadastrar;

    public static void main(String[] args) throws FileNotFoundException, IOException {
        int opcao;
        System.out.println("\n----------CADASTRO DE ROTINAS DE INICIALIZAÇÃO----------");
        System.out.println("Neste script você pode adicionar comandos para inicializar rotinas (no formato: startx ou xcalic -c) ou");
        System.out.println("Pode acrescentar o atalho para um programa que será executado (no formato: /home/usuario/programa)");
        System.out.println("Escolha sua opção:");
        System.out.println("1) Cadastrar rotina ou programa");
        System.out.println("2) Excluir script");
        System.out.println("3) Pré-visualizar arquivo do incialização");
        System.out.println("4) Sair");
        opcao = Variaveis.getENTRADA().nextInt();
        if (opcao >= 1 && opcao <= 4) {
            **cadastrar.CadRotina(opcao);**

        } else {
            System.out.println("Opcao inválida! Digite novamente");
        }
    }

}

Method of Class Registration:

public void CadRotina(String arquivo, String texto, int opcao) throws FileNotFoundException, IOException {
    this.arquivo = arquivo;
    this.texto = texto;
    this.opcao = opcao;
    dados.gravarNoArquivo(arquivo, texto);
}
public void CadRotina(int opcao2) throws FileNotFoundException, IOException {
    this.opcao = opcao2;
    switch (opcao2) {
        case 1:
            if (arquivo == null) {
                System.out.println("\n----------INFORMANDO AS ROTINAS DE INICIALIZAÇÃO----------");
                System.out.println("Cadastre primeiramente o nome do arquivo que recebera as rotinas");
                this.arquivo = Variaveis.getENTRADA().nextLine();
                System.out.println("Agora, informe o caminho do script que devera ser executado automaticamente(Ex.: /home/scriptinternet: \n Ou adicione uma linha de comando (ex. xcalib - c)");
                this.texto = Variaveis.getENTRADA().nextLine();
                dados.gravarNoArquivo(arquivo, texto);

            }
    }
}

And he presents the following error:

Exception in thread "main" java.lang.Nullpointerexception at aloiexecv2.test.main(test.java:34) /root/. cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned: 1 BUILD FAILED (total time: 3 Seconds)**

Row 34 refers to the method CadRotina(opcao). Apparently java is saying that the method is empty, but I have tested the option variable and it is being set in Scanner.

I overloaded the method so that I could use Cadrotina with both the variable option and for direct execution (record file, text).

I don’t understand why you don’t execute. Someone can help me?

1 answer

0

1) Use the reference instead of the type:

opcao = Variaveis.getENTRADA().nextInt(); 

Exchange for:

opcao = variaveis.getENTRADA().nextInt();

2) Static does not generate object:

private static Variaveis variaveis;
private static Dados dados;
private static Cadastrar cadastrar;

Exchange for:

private Variaveis variaveis;
private Dados dados;
private Cadastrar cadastrar;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.