variable valor una tipos tipo los ejemplos declarar declaran datos como cadena asignar alfanumericos java variables variable-assignment declaration

java - valor - División de declaración y asignación=¿Buena práctica?



tipos de variables en java ejemplos (6)

Siendo un ávido usuario de NetBeans, sigo recibiendo sugerencias para dividir mis declaraciones de variables y asignaciones cuando presento una nueva variable. Como un súper rápido ejemplo de la parte superior de mi cabeza, tomemos esta línea de Java:

String someInput = JOptionPane.showInputDialog(null, "- Enter something: ");

versus:

String someInput; someInput = JOptionPane.showInputDialog(null, "- Enter something: ");

NetBeans parece preferir lo último (sin embargo, no sabría sobre otros IDEs). Si bien funciona claramente en ambos sentidos, ¿cuál sería considerada una "buena práctica", si es que lo es? ¿O es simplemente una cuestión de preferencia personal?

(Obviamente dividir los dos significa una línea adicional que podrías haber combinado en una sola, pero eso no viene al caso).


Code Complete, que está bien considerado por la mayoría de la comunidad de programación, sugiere en su página 241 que, como cuestión de programación defensiva, puede inicializar cada variable tal como está declarada (su primera opción) o inicializarla cerca de donde se usa por primera vez. (su segunda opción).

Sin embargo, el libro sugiere que la segunda opción es mejor porque si usa la primera opción, su variable puede haber cambiado entre su declaración y su uso.

En su caso, la diferencia entre declaración y uso en el segundo caso es una sola línea. Por lo tanto, las preocupaciones del libro no se aplican. Sin embargo, sus preocupaciones son legítimas y esta puede ser la razón por la cual los diseñadores de Netbeans incluyeron este consejo (aunque lo usaron en exceso).


Esta fue una opción agregada a NetBeans en algún lugar entre 7.0 y 7.3. Si no le gusta esta sugerencia, puede cambiarla deseleccionando: Herramientas> Opciones> Editor> Sugerencias> Sugerencias> Declaración dividida


Netbeans sugiere esto ya que puede acelerar la codificación, por ejemplo, considere esta tarea

final String myString = "somevalue"

Luego decides que en realidad el valor depende de algún valor boolean

final String myString; if(something) { myString = "somevalue" } else { myString = "someothervalue" }

Para convertir uno de otro, puede usar la sugerencia de código para la declaración y asignación derramadas y la plantilla if...else para generar el código en muy pocos pasos.

En general, si está asignando incondicionalmente, entonces no hay razón para dividir la declaración y la asignación.


No creo que sea un gran problema. Elige un estilo que te guste, y mantenlo durante todo el proceso (si estás en un equipo, es útil si todos están diseñando su código de manera similar).

Personalmente prefiero inicializar mis variables justo en el momento de la declaración. Por esa razón, preferiría lo primero a lo último.


No hay ninguna razón para dividir la declaración y la asignación si solo los va a tener en líneas consecutivas. Solo los dividiría si la asignación fuera condicional, o si tuviera que ir en un bloque de código separado (como un try / catch, o si la asignación va en un constructor, etc.).


Un patrón común que se remonta a la programación temprana con tipado estático es declarar todas las variables que necesita en la parte superior del bloque en el que deben ubicarse, y luego asignarlas posteriormente a esos valores.

Dicho esto, siempre y cuando puedas comunicar claramente la intención de tu código a las personas con las que trabajas, o a ti mismo en un año, en realidad no debería importar.

Cambiemos nuestra actitud tradicional hacia la construcción de programas: en lugar de imaginar que nuestra tarea principal es instruir a una computadora sobre qué hacer, concéntrese en explicar a los seres humanos lo que queremos que haga una computadora. - Donald Knuth