ToolActToolAct

Herramienta de Formato Java

Entrada Java
Salida
Líneas: 1Caracteres: 0Bytes: 0
Líneas: 1Caracteres: 0

¿Qué es el Formato Java?

El formateador Java reorganiza código Java con indentación, saltos de línea y estructura coherentes para que clases, métodos, bloques, genéricos, anotaciones y flujo de control sean más fáciles de leer. Es útil con fragmentos pegados, código generado, preparación de revisiones, ejemplos de aprendizaje y archivos inconsistentes por ajustes distintos de editor. El formateo mejora legibilidad y colaboración, pero no corrige automáticamente lógica, errores de compilación, imports faltantes, mal uso de APIs ni reglas de estilo propias del proyecto. En repositorios productivos conviene comparar la salida con el formateador del equipo, la herramienta de build o la convención de CI para evitar ruido en los diffs.

Uso

Cómo usar

  1. Pega o escribe código Java en el cuadro de entrada izquierdo
  2. Selecciona el tamaño de sangría (2 espacios, 4 espacios o tabulador)
  3. Pulsa 'Formatear' para embellecer el código, o 'Minimizar' para comprimirlo
  4. Consulta los resultados a la derecha (con resaltado de sintaxis)
  5. Pulsa 'Copiar' para llevarlo al portapapeles

Descripción de opciones

Tamaño de sangríaElige entre 2 espacios, 4 espacios o sangría con tabulador
FormatearEmbellece el código con la sangría y los saltos de línea adecuados
MinimizarElimina espacios en blanco y comentarios para reducir el tamaño del archivo

Consejos de código

  • El formateo mejora la legibilidad, pero no compila ni comprueba los tipos del código Java. Ejecuta tu compilación habitual o las verificaciones del IDE después de editar.
  • Minimizar el código fuente Java rara vez es útil en compilaciones de producción; mantén un formato legible para revisiones, seguimientos de pila y mantenimiento futuro.

Casos de uso

Limpiar código Java pegado antes de una revisiónCuando el cuerpo de un método se ha copiado desde un chat, documentación o comentario de un ticket con espaciado inconsistente, este formateador restaura rápidamente la indentación y los saltos de línea legibles alrededor de llaves y sentencias. Es especialmente útil para fragmentos pequeños donde deseas una forma apta para revisión de código sin abrir un proyecto completo en el IDE.
Preparar ejemplos compactos para documentación o informes de erroresEl modo minificar elimina comentarios y espacios extra para que un ejemplo Java quepa en un campo de incidencia, anotación de log o nota de reproducción sin desplazarse. Como el análisis y la minificación ocurren completamente en el navegador, nombres de paquetes internos, DTOs a medio terminar o código propietario de una rama privada pueden reformatearse sin salir de la página.
Detectar errores estructurales evidentes en fragmentos cortosLa validación integrada verifica el equilibrio de paréntesis respetando cadenas, literales de carácter y comentarios, por lo que puede detectar una llave o paréntesis faltante antes de pegar el fragmento en otro lugar. No es un compilador, pero es una pasada rápida de verificación para ejercicios de entrevista, muestras de documentación y métodos utilitarios aislados.
Alinear código generado con la indentación del proyectoAlterna entre indentación de 2 espacios, 4 espacios y tabulaciones para que los getters generados, la salida de Lombok o las exportaciones del IDE coincidan con el archivo circundante. Antes de ejecutar esto en un módulo completo, comprueba la configuración de Google Java Style, Checkstyle o Spotless del equipo, de lo contrario la pasada del formateador creará un diff ruidoso.
Formatear fragmentos con enums y anotaciones de forma seguraLos enums con constantes, métodos y matrices de anotaciones a menudo se colapsan en bloques de texto ilegibles en el chat. Reformatealos para que cada constante y sus argumentos ocupen su propia línea, luego verifica que los imports y el modificador public sigan presentes tras la reescritura. Google Java Style exige indentación de 4 espacios con un ancho de línea de 100 columnas, mientras que el perfil predeterminado de Eclipse usa tabulaciones de 2 espacios y el estilo integrado de IntelliJ a menudo se extiende a 120 columnas.

Principio técnico

El formateo Java se basa en análisis léxico y construcción de AST. El analizador léxico escanea el fuente carácter por carácter y produce tokens: palabras clave (class, public, static, y las demás palabras reservadas), identificadores (nombres de variables y clases), literales (números, cadenas, caracteres), operadores (+, -, ==, &&, ...), separadores ({ } ( ) ; ,) y comentarios (//, /* */). El parser convierte el flujo de tokens en un árbol de sintaxis abstracta (AST) siguiendo la Especificación del Lenguaje Java, reconociendo definiciones de clases, cuerpos de métodos, bloques de sentencias, estructuras de flujo de control, anotaciones y otras unidades sintácticas. El formateador recorre el AST y regenera el código siguiendo una guía de estilo como Google Java Style: la indentación aumenta con la profundidad del bloque, el ancho de línea se limita a 100 columnas, los operadores llevan espacios a ambos lados, las comas van seguidas de un espacio y las llaves de apertura permanecen en la misma línea (estilo K&R). El manejo de anotaciones es un caso especial en el formateo Java: una sola anotación permanece en la misma línea que el método; listas de anotaciones más largas se dividen en líneas alineadas en los parámetros, con cada anotación en su propia línea.

  • Análisis léxico: reconoce las 50 palabras clave de Java, identificadores, literales, operadores y comentarios, y produce un flujo de tokens.
  • Construcción del AST: construye el AST según las reglas del JLS, manejando correctamente clases, métodos, flujo de control, lambdas y try-with-resources.
  • Reglas de indentación: el estilo Google usa 4 espacios por nivel por defecto, con un ancho de línea de 100 columnas; las líneas que exceden el límite se ajustan automáticamente.
  • Estrategia de saltos de línea: las cadenas de métodos largas, listas de parámetros y anotaciones se ajustan en comas o puntos, con líneas de continuación alineadas al primer carácter de la línea anterior.
  • Manejo de anotaciones: una sola anotación permanece en la misma línea; múltiples anotaciones pueden estar en una línea o una por línea, decidido por la longitud y las reglas de alineación de parámetros.
  • Preservación de comentarios: mantiene los comentarios // y /* */ en sus posiciones originales; la eliminación es una opción durante la minificación.

Ejemplos

Formatear una definición de clase

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

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

Formatear una cadena de métodos

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

Ajustar anotaciones en varias líneas

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

Preguntas frecuentes

¿Qué estilo de Java utiliza?

Los valores predeterminados habituales son Google Java Style o las convenciones de Sun/Oracle: indentación de 4 espacios, llaves al estilo K&R, ancho de línea de 100 columnas. Algunas builds exponen opciones para cambiar de estilo. Las reglas exactas de cualquier guía de estilo son sutiles: ejecuta el formateador, lee la salida y fija una configuración.

¿El formateador entiende Java moderno?

Depende de la versión del parser. Records, sealed classes, switch expressions, text blocks y pattern matching son incorporaciones recientes; los parsers antiguos pueden no manejarlos. Prueba con un fragmento: si se formatea limpiamente, vas bien; si lanza un error, comprueba la versión del parser.

¿Arreglará los imports o las variables no usadas?

No. El formateado solo cambia los espacios en blanco y la colocación de las llaves. El análisis estático (organizar imports, eliminar lo no usado) requiere un IDE real o una herramienta como google-java-format con --skip-removing-unused-imports desactivado.

¿Se sube mi código fuente?

No. El formateado se ejecuta en tu navegador a través de un parser de Java basado en JS. El código no se transmite. Aun así, evita pegar código propietario si tu política de seguridad prohíbe cualquier exposición a herramientas web.

¿Coincidirá con lo que produce IntelliJ o Eclipse?

Probablemente no exactamente. Cada IDE tiene su propio formateador con miles de opciones. Usa este para formateo puntual; para consistencia de equipo, utiliza una herramienta forzada en CI como google-java-format o Spotless integrada en tu build.

¿Puede minificar Java?

Java es un lenguaje compilado: la minificación no se aplica como en JS. La optimización de archivos .class la hacen los compiladores y ProGuard en tiempo de build. Esta página solo formatea a nivel de código fuente.

¿Por qué se añaden líneas en blanco extra a mi código?

Muchas guías de estilo exigen una línea en blanco entre miembros de clase o entre métodos. El formateador las inserta para cumplirlas. Si prefieres código compacto, sobrescribe las opciones de estilo correspondientes.