JavaFX - Erro ao adicionar itens ao ArrayList

Pessoal, esotu desenvolvendo um “fórum” (apenas para praticar) e, agora, estou desenvolvendo a página de criar uma postagem. A princípio, quero armazenar os dados informados pelo usuário em um ArrayList, apenas isso. Fiz o mesmo método que uso em todas as vezes que preciso fazer algo parecido e agora simplesmente não está funcionando. Se alguém puder me dizer o que está acontecendo e como resolver eu agradeço!

Inicialização das variáveis:

    public static String titulo = null;
    public static String descricao = null;
    public static String conteudo = null;
    public static String referencia = null;
    public static String autor = null;
    public static String dataPostagem = null;
    
    public static ArrayList<Post> postagens = new ArrayList();

Ação do botão:

@FXML
    private void clickEnviar(ActionEvent event) {
        criarPost();
    }

Método para obter as informações:

public void criarPost(){
        titulo = txtTitulo.getText();
        descricao = txtDescricao.getText();
        conteudo = txtConteudo.getText();
        referencia = txtReferencia.getText();
        autor = txtAutor.getText();
        dataPostagem = txtData.getText();
        
        Post novoPost = new Post(titulo, descricao, conteudo, referencia, autor, dataPostagem);
        postagens.add(novoPost);
        System.out.println(postagens);
    }

Erros:

Exception in thread “JavaFX Application Thread” java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.NullPointerException
[java] at matforum.FXMLCriarPostController.clickEnviar(FXMLCriarPostController.java:81)

Qual o motivo dos atributos serem estáticos?

Eu irei colocar as informações das postagens em outra parte do programa também. Na página inicial, por exemplo, há a aba “postagens recentes” para que os usuários possam acessar.

Mas o static não é para isso.
Se outras classes do seu programa vão ter acesso à essas variáveis, então elas vão precisar de uma referência ao objeto do tipo FXMLCriarPostController que você criou.

Sério? Sempre utilizei o static pensando que servia pra isso kkkk

Você pode me dizer qual a real função do static então?

Oi amigo.
Pode mostrar qual a linha o stacktrace faz referência?

Caused by: java.lang.NullPointerException
[java] at matforum.FXMLCriarPostController.clickEnviar(FXMLCriarPostController.java:81)

No momento que você clica no botão ele dá o NPE…?

Hey Marques14 refer below resource on what the real static function.