ToolActToolAct

Ferramenta de Formatação Java

Entrada Java
Saída
Linhas: 1Caracteres: 0Bytes: 0
Linhas: 1Caracteres: 0

O que é Formatação Java?

O formatador Java reorganiza código Java com indentação, quebras de linha e estrutura consistentes para tornar classes, métodos, blocos, generics, anotações e fluxo de controle mais fáceis de ler. Ele é útil para trechos colados, código gerado, preparação de revisão, exemplos de estudo e arquivos inconsistentes por configurações diferentes de editor. A formatação melhora legibilidade e colaboração, mas não corrige lógica, erros de compilação, imports ausentes, uso incorreto de APIs nem regras de estilo específicas do projeto. Em repositórios reais, compare a saída com o formatter da equipe, ferramenta de build ou convenção da CI para evitar ruído em diffs.

Como Usar

Como usar

  1. Cole ou digite o código Java na caixa de entrada à esquerda
  2. Selecione o tamanho da indentação (2 espaços, 4 espaços ou Tab)
  3. Clique em 'Formatar' para embelezar o código ou em 'Minificar' para comprimir
  4. Veja os resultados à direita (com destaque de sintaxe)
  5. Clique em 'Copiar' para copiar para a área de transferência

Descrição das Opções

Tamanho da IndentaçãoEscolha entre indentação de 2 espaços, 4 espaços ou Tab
FormatarEmbeleze o código com indentação e quebras de linha adequadas
MinificarRemova espaços em branco e comentários para reduzir o tamanho do arquivo

Dicas de Código

  • A formatação melhora a legibilidade, mas não compila nem verifica tipos do código Java. Execute sua build normal ou as verificações da IDE após editar.
  • Minificar código Java raramente é útil em builds de produção; mantenha a formatação legível para revisões, stack traces e manutenção futura.

Casos de uso

Limpar código Java colado antes da revisão de códigoQuando o corpo de um método foi copiado do chat, documentação ou comentário de um ticket com espaçamento inconsistente, este formatador restaura rapidamente a indentação legível e as quebras de linha ao redor de chaves e instruções. É especialmente útil para pequenos trechos onde você quer um formato adequado para revisão de código sem abrir um projeto IDE completo.
Preparar exemplos compactos para documentação ou relatórios de bugO modo minificação remove comentários e espaços extras para que um exemplo Java caiba em um campo de issue, anotação de log ou nota de reprodução sem rolagem. Como a análise e minificação acontecem inteiramente no navegador, nomes de pacotes internos, DTOs inacabados ou código proprietário de uma branch privada podem ser reformatados sem sair da página, o que importa ao compartilhar um reprodutor que ainda contém identificadores de clientes.
Identificar erros óbvios de estrutura em trechos curtosA validação integrada verifica o balanceamento de chaves respeitando strings, literais de caractere e comentários, então pode detectar uma chave ou parêntese faltante antes de colar o trecho em outro lugar. Não é um compilador, mas é uma verificação rápida para exercícios de entrevista, amostras de documentação e métodos utilitários isolados.
Alinhar código gerado com a indentação do projetoAlterne entre indentação de 2 espaços, 4 espaços e tabulação para que getters gerados, saída do Lombok ou exportações da IDE correspondam ao arquivo ao redor. Antes de executar isso em um módulo inteiro, verifique a configuração do Google Java Style, Checkstyle ou Spotless da equipe, caso contrário a formatação criará um diff ruidoso.
Formatar trechos com muitas enumerações e anotações com segurançaEnumerações com constantes, métodos e arrays de anotações frequentemente colapsam em blocos ilegáveis de texto no chat. Reformate-as para que cada constante e seus argumentos fiquem em sua própria linha, depois verifique se os imports e o modificador public ainda estão presentes após a reescrita. O Google Java Style exige indentação de 4 espaços com largura de linha de 100 colunas, enquanto o perfil padrão do Eclipse usa tabulações de 2 espaços e o estilo integrado do IntelliJ frequentemente se estende para 120 colunas; executar este formatador sem verificar o perfil da equipe produzirá diffs mesmo quando o código é válido. As regras de ordenação de imports (imports estáticos primeiro, depois java.*, depois javax.*, depois externos, depois locais) também são específicas do estilo, e o espaçamento de colchetes angulares em generics como Map<String, List<Integer>> versus a forma antiga Map <String, List<Integer>> é normalizado sem espaço pelo Google Style.

Princípio técnico

A formatação Java é construída sobre análise léxica e construção de AST. O lexer escaneia o código fonte caractere por caractere e produz tokens: palavras-chave (class, public, static e outras palavras reservadas), identificadores (nomes de variáveis e classes), literais (números, strings, caracteres), operadores (+, -, ==, &&, ...), separadores ({ } ( ) ; ,) e comentários (//, /* */). O parser converte o fluxo de tokens em uma árvore sintática abstrata (AST) seguindo a especificação da linguagem Java (JLS), reconhecendo definições de classes, corpos de métodos, blocos de instruções, estruturas de controle de fluxo, anotações e outras unidades sintáticas. O formatador percorre a AST e regenera o código seguindo um guia de estilo como o Google Java Style: a indentação aumenta com a profundidade do bloco, a largura de linha é limitada a 100 colunas, operadores recebem espaços em ambos os lados, vírgulas são seguidas por um espaço e chaves de abertura permanecem na mesma linha (estilo K&R). O tratamento de anotações é um caso especial na formatação Java: uma única anotação permanece na mesma linha do método; listas de anotações mais longas são quebradas em várias linhas alinhadas nos parâmetros, com cada anotação em sua própria linha.

  • Análise léxica: reconhecer as 50 palavras-chave Java, identificadores, literais, operadores e comentários, e gerar um fluxo de tokens.
  • Construção da AST: construir a AST conforme as regras do JLS, tratando corretamente classes, métodos, controle de fluxo, lambdas e try-with-resources.
  • Regras de indentação: o estilo Google usa 4 espaços por nível por padrão, com largura de linha de 100 colunas; linhas que excedem o limite são quebradas automaticamente.
  • Estratégia de quebra de linha: cadeias de métodos longas, listas de parâmetros e anotações são quebradas em vírgulas ou pontos, com linhas de continuação alinhadas ao primeiro caractere da linha anterior.
  • Tratamento de anotações: uma única anotação permanece na mesma linha; múltiplas anotações podem ficar em uma linha ou uma por linha, decidido pelo comprimento e regras de alinhamento de parâmetros.
  • Preservação de comentários: manter comentários // e /* */ em suas posições originais; a remoção é uma opção durante a minificação.

Exemplos

Formatando uma definição de classe

Entrada: public class User{private Long id;private String name;public User(Long id,String name){this.id=id;this.name=name;}}
Saída:
public class User {
  private Long id;
  private String name;

  public User(Long id, String name) {
    this.id = id;
    this.name = name;
  }
}

Formatando uma cadeia de métodos

Entrada: List<String> result=list.stream().filter(s->s.startsWith("a")).map(String::toUpperCase).sorted().collect(Collectors.toList());
Saída:
List<String> result = list.stream()
    .filter(s -> s.startsWith("a"))
    .map(String::toUpperCase)
    .sorted()
    .collect(Collectors.toList());

Quebrando linhas de anotações

Entrada: @Override public ResponseEntity<User> getUser(@PathVariable Long id,@RequestParam(defaultValue="10") int size){...}
Saída:
@Override
public ResponseEntity<User> getUser(
    @PathVariable Long id,
    @RequestParam(defaultValue = "10") int size) {
  ...
}

Perguntas frequentes

Qual estilo Java é usado?

Os padrões comuns são o Google Java Style ou as convenções Sun/Oracle: indentação de 4 espaços, estilo de chaves K&R, largura de linha de 100 colunas. Algumas builds expõem opções para alternar estilos. As regras exatas de qualquer guia de estilo são sutis — rode o formatador, leia a saída e fixe uma configuração.

O formatador entende Java moderno?

Depende da versão do parser. Records, sealed classes, switch expressions, text blocks e pattern matching são adições recentes; parsers mais antigos podem não suportá-los. Tente um trecho — se formatar limpo, está tudo bem; se der erro, verifique a versão do parser.

Ele corrige imports ou variáveis não utilizadas?

Não. A formatação só altera espaços em branco e posicionamento de chaves. Análise estática (organizar imports, remover não utilizados) precisa de uma IDE de verdade ou uma ferramenta como o google-java-format com --skip-removing-unused-imports desligado.

Meu código-fonte é enviado para algum servidor?

Não. A formatação roda no seu navegador via um parser Java em JS. O código não é transmitido. Evite colar código proprietário se sua política de segurança proíbe qualquer exposição em ferramentas web.

O resultado vai bater com o do IntelliJ ou Eclipse?

Provavelmente não exatamente. Cada IDE tem seu próprio formatador com milhares de opções. Use isto para formatação pontual; para consistência da equipe, use uma ferramenta aplicada via CI como google-java-format ou Spotless integrada ao seu build.

Dá para minificar Java?

Java é uma linguagem compilada — a minificação não se aplica como em JS. A otimização de class files é o que os compiladores e o ProGuard fazem em tempo de build. Esta página é apenas para formatação de código-fonte.

Por que meu código ficou com linhas em branco a mais?

Muitos guias de estilo exigem uma linha em branco entre membros de classe ou entre métodos. O formatador insere essas linhas para seguir o padrão. Se você prefere código compacto, ajuste as opções de estilo correspondentes.