Dos ejemplos en los que esto puede ser (un poco) de utilidad - en las pruebas unitarias, y en interfaces gráficas de usuario, los cuales a menudo implican código repetitivo:
Es útil en la construcción de interfaz gráfica de usuario, donde es muy fácil de CUT y pegar líneas en relación con un componente y se olvide de actualizar ellos para el nuevo componente, lo que conduce a errores difíciles de encontrar, por ejemplo:
JButton button1 = new JButton("OK");
button1.setEnabled(false);
button1.setAlignmentX(-1);
JButton button2 = new JButton("Apply");
button1.setEnabled(false);
button1.setAlignmentX(-1);
Vaya, acabo de configurar button1
dos veces. Si coloca cada botón en su propio bloque, el compilador recogerá este error.Una vez más, se podría crear cada botón en un método separado, pero que puede hacer que sea difícil ver lo que está pasando (especialmente teniendo en cuenta la falta de parámetros de palabras clave en Java):
JButton button_ok = makeButton("OK", false, -1);
JButton button_apply = makeButton("Apply", true, 1);
// what exactly is being set here?
...
// much later:
private static JButton makeButton(String name, boolean enabled,
int alignment)
{
JButton button = new JButton(name);
button.setEnabled(enabled);
button.setAlignmentX(alignment);
return button;
}
... y puede terminar con numerosos métodos, cada uno de los cuales maneja diferentes variaciones de parámetros, y cada uno solo se puede usar dos veces.
No es broma. Este es uno de estos "ingeniosos trucos de Java" que aparecen en un entorno académico o en pruebas de certificación, pero que los desarrolladores profesionales de Java probablemente nunca usarían. –
En realidad, es muy útil en unos pocos casos para garantizar que los bloques adyacentes de código sean realmente independientes, para evitar errores de cortar y pegar, y para evitar cambios innecesarios al reordenar bloques. – DNA
Sí, muy útil para copiar y pegar de forma rápida y sucia;] – davidfrancis