En un artículo de la serie CodeSOD publicado por The Daily WTF el 7 de octubre de 2026, Remy Porter presenta un ejemplo de Java procedente de un equipo dirigido por Robert. Un desarrollador junior preguntó cómo leer datos desde la línea de comandos y actuar según la respuesta. Un desarrollador sénior con muchos años en la empresa, aficionado a la mentoría, le entregó una aplicación llamada ScannerTool.
El programa usa claves Optional<Character> dentro de un mapa. Cada valor es un objeto Map.Entry con un mensaje y un booleano. El mapa contiene entradas para A, B y una entrada vacía. El método main pide repetidamente que se introduzca A o B y después llama a nextCharacter(). Esa función crea un Scanner UTF-8 sobre System.in, lee una línea completa y devuelve su primer carácter dentro de un Optional. Si la línea está vacía, devuelve Optional.empty().
Porter señala que nextCharacter() en realidad obtiene el primer carácter de la siguiente línea, por lo que el nombre resulta impreciso. Scanner también es un analizador completo para tipos de datos habituales y resulta excesivo para esta tarea. La solución emplea objetos Map.Entry como sustitutos improvisados de tuplas. Porter recuerda que Java estándar no ofrece tuplas de propósito general. También expresa dudas sobre si las posibles tuplas del espacio de nombres javax asociado con Enterprise Edition están pensadas para uso general. El artículo presenta el diseño como un ejemplo extremo de sobreingeniería para una entrada con solo dos opciones.




Comentarios
Aún no hay comentarios — escribe el primero.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.