O que um arquivo .java precisa para compilar?

Durante os meus estudos para certificação da Oracle, surgiu uma questão bem interessante… O que um arquivo .java precisa para compilar? Vamos verificar com a classe Teste.

class Teste{

     public static void main(String[] args){

     }
	
}

Se eu tirar o método main:

class Teste{

}

E tentar compilar:

compilando-arquivo-java

Ele compila conforme o esperado! Certo agora eu acho que não tem mais nada que possa retirar… Mas e se eu tirar a classe inteira? Ele compila? Sim? Não? O que você acha?

Vamos tentar compilar sem a classe, ou seja, um arquivo vazio:

compilando-arquivo-java2

Compilou??? O que!? Isso mesmo, compilou! Para compilarmos um arquivo .java não precisamos de nada em específico, ou seja, não precisamos de uma classe, método ou qualquer conteúdo. Simples assim!

Se fosse uma questão da certificação, você acertaria? Compartilhe!

Caiu na pegadinha e quer se preparar mais para a certificação da Oracle? Pensando nisso o instrutor Guilherme Silveira criou a trilha de certificação Java no Alura. Com 9 cursos preparatórios para você nunca mais cair em pegadinhas!


Content Editor at Alura and Software Developer

  • Essa é novidade, ja iria errar kkk

    Abraços Alex

    • Opa Matheus, engraçado né? Quando eu vi eu pensei: “What? Isso é sério?” haha

      Obrigado pelo comentário amigo.

      Abraços 🙂

  • Bruno Nogueira de Oliveira

    Um detalhe interessante é que, mesmo a compilação não apresentando erros, nenhum arquivo .class é gerado. Ou seja, não da erro de compilação, mas não compila nada também. Basta tentar listar os arquivos do diretório e ver que não gera o .class

    • Bem observado Bruno! É um tipo de cenário bem engraçado mesmo, já que não conseguiu gerar o arquivo .java, deveria alertar o desenvolvedor. Esse tópico, faz parte daquelas típicas perguntas que pode confundir qualquer um 🙂

Próximo ArtigoUtilizando o padrão ViewHolder