Los archivos Java del repositorio se validan de forma independiente.
La validación actual se realizó con JDK 23.0.2 utilizando javac --release 17. De esta forma se comprueba la compilación con el JDK instalado y, al mismo tiempo, que el código sea compatible con Java 17.
| Indicador | Resultado |
|---|---|
| Archivos Java totales | 46 |
| Archivos del núcleo obligatorio | 28 |
| Archivos obligatorios de grafos | 4 |
| Versión mínima comprobada | Java 17 |
| JDK utilizado para la validación | JDK 23.0.2 |
| Archivos con error de compilación | 0 |
- Los 46 archivos Java compilan individualmente.
- Los 46 archivos compilan con compatibilidad objetivo Java 17.
- La validación se realizó con
javac 23.0.2. - No se requieren Maven, Gradle ni dependencias externas.
- Los ejemplos no requieren declaraciones
package. - El nombre de cada clase pública coincide con el nombre de su archivo.
- Cada archivo se compila de forma independiente.
- Los archivos
.classse generan únicamente en un directorio temporal. - La validación no deja archivos
.classdentro del repositorio.
El resultado de la última ejecución fue:
Resumen
Archivos Java: 46
Correctos: 46
Con errores: 0
Validación correcta.
La compilación completa puede comprobarse desde Git Bash mediante:
./scripts/validar_java.shEl script utiliza para cada archivo:
javac --release 17 -encoding UTF-8El uso de --release 17 es deliberado. Aunque la máquina de desarrollo utilice un JDK posterior, esta opción evita introducir accidentalmente características del lenguaje o API que no estén disponibles en Java 17.
Cada archivo se compila en un directorio temporal. Antes de compilar el siguiente archivo se elimina el contenido generado por la compilación anterior.
Esto permite detectar dependencias accidentales entre ejemplos que deberían ser autocontenidos.
El script termina con un código distinto de cero si al menos un archivo no compila.
La versión mínima objetivo del repositorio es Java 17.
La validación actual se realizó con:
javac 23.0.2
java 23.0.2
pero la compilación utiliza:
--release 17
Por tanto, disponer de JDK 23 para el desarrollo no implica que los ejemplos dependan de Java 23.
Los archivos públicos contienen esqueletos didácticos con operaciones marcadas mediante TODO(alumno).
Una operación pendiente puede contener deliberadamente:
throw new UnsupportedOperationException(
"TODO: implementar ..."
);Los métodos main() correspondientes pueden capturar esta excepción para mostrar de forma controlada que una operación todavía debe ser implementada.
Por esta razón, que un archivo compile correctamente no significa que todos sus TODO(alumno) estén resueltos.
La validación de compilación comprueba principalmente:
- sintaxis Java,
- consistencia de tipos,
- disponibilidad de las API utilizadas en Java 17,
- independencia de compilación,
- nombres correctos de las clases públicas,
- ausencia de dependencias externas.
Esta comprobación no reemplaza la validación funcional de las soluciones privadas.
Los esqueletos públicos contienen TODO(alumno) deliberados.
Como consecuencia, el Java Language Server de VS Code puede informar temporalmente diagnósticos como:
The method ... is never used
The import ... is never used
The value of the field ... is not used
Estos avisos pueden ser esperados cuando el elemento señalado forma parte de una operación que el estudiante todavía debe completar.
Por ejemplo, métodos auxiliares como:
resize()
rotateLeft()
rotateRight()
bubbleUp()
trickleDown()
split()
pueden aparecer inicialmente como no utilizados porque la operación principal que debe invocarlos contiene todavía un TODO(alumno).
De manera similar, un import puede aparecer como no utilizado si está preparado para la implementación solicitada al estudiante.
Estos diagnósticos no deben eliminarse automáticamente completando las soluciones o retirando elementos que forman parte del ejercicio.
En el repositorio no deben existir errores reales de:
- sintaxis,
- tipos,
- nombres de clases públicas,
- paquetes,
- referencias inexistentes,
- compilación con Java 17.
Las soluciones completas del bloque obligatorio de grafos se probaron temporalmente sin incluirlas en los archivos públicos.
| Prueba | Resultado esperado |
|---|---|
| Representación por lista y matriz | Vecinos [1, 3], grado 2 |
| BFS | Distancias [0, 1, 1, 2, 2, 3, -1] |
| DFS | Orden [0, 1, 3, 2, 4, 5] |
| Componentes conexas | 4 componentes |
Las cuatro soluciones produjeron los resultados esperados.
Después de ejecutar la validación se comprobó:
find . -type f -name "*.class"La búsqueda no produjo resultados.
Por tanto, la compilación de validación no deja artefactos .class dentro del árbol de trabajo.
- Los comentarios están escritos en español.
- Las cadenas de texto están escritas en español.
- Las firmas de funciones y métodos están escritas en inglés.
- Los identificadores técnicos propios de Java se conservan en inglés.
- La documentación utiliza títulos
###y subtítulos####. - La prosa no utiliza rayas largas.
- La prosa no utiliza emoticones.
- La prosa no utiliza separadores decorativos.
- La prosa evita los puntos y coma.
- Se revisan las tildes y los signos de puntuación.
La validación completa más reciente produjo:
Resumen
Archivos Java: 46
Correctos: 46
Con errores: 0
Validación correcta.
No se encontraron archivos .class en el repositorio después de la validación.
El estado esperado antes de publicar cambios es:
Errores de javac 0
Errores reales del IDE 0
Archivos .class en el repositorio 0
TODO(alumno) permitidos
Warnings derivados de TODO permitidos