Avatar ·

O que é null/nil em Java e como trabalhar com ele?

Olá a todos! Estou aprendendo os fundamentos de Java e me deparei com o conceito de null. Em algumas linguagens (como SQL ou Go), estou acostumado com o termo nil. Entendo corretamente que em Java não existe nil, e apenas null é usado? E se sim, o que é isso exatamente — uma referência vazia ou um valor especial?

O problema surgiu quando escrevi um código simples com a classe User e tentei chamar um método em um objeto que não inicializei:

public class User {
    String name;

    void printName() {
        System.out.println(name.length());
    }

    public static void main(String[] args) {
        User user = null;
        user.printName(); // Aqui ocorre NullPointerException
    }
}

Eu esperava que, se user fosse null, o método simplesmente não fizesse nada ou retornasse uma string vazia. Mas, em vez disso, o programa trava com um erro.

Já tentei:

  • Verificar se