Consejos de Java y la mejor manera de evitar NullPonintexception en la aplicación Java
En una aplicación Java, una Nullponintexception (excepción de puntero nulo) es la mejor solución (problema). Al mismo tiempo, un puntero nulo también es la clave para escribir código robusto y suave de ejecución. La frase "prevención es mejor que el tratamiento" también se aplica a la desagradable nullpontaxception. Al aplicar técnicas de codificación defensiva y las siguientes convenciones entre múltiples piezas, puede evitar en gran medida NullPointException. ¡Los siguientes consejos de Java pueden minimizar las imágenes! = código nulo para este tipo de verificación. Como programador de Java experimentado, puede darse cuenta de que algunas de estas tecnologías se utilizan en algunos proyectos. Pero para los estudiantes universitarios de primer año y los desarrolladores intermedios, esta es una gran oportunidad de aprendizaje.
Estas son algunas técnicas simples que son fáciles de aprender, pero son realmente importantes para la calidad del código y la robustez. En mi experiencia, solo el primer truco ha jugado un papel importante en la mejora de la calidad del código.
1) llamar a igual () y igualarnorecase () en la cadena existente (cadena) en lugar de objetos desconocidos
Por lo general, igual () se llama a la cadena no vacía ya. Debido a que el método igual () es simétrico, llamar a A.Equal () es equivalente a llamar B.Equal (), y es por eso que muchos prestan atención a los objetos A y B, si un lado del vacío causará un puntero nulo.
Objeto desconocidoBject = null; // Were Way - puede causar nullPointerExceptionIF (desconocidoObject.equals ("conoceBject")) {system.err.println ("Esto puede resultar en nullPointerException si el desconocido es nulo");} // de manera correcta - evite nullPointerException incluso si el desconocido es desconocido es nulli System.err.println ("mejor codificación evitó nullpointerException");}Este es el truco de Java más importante para evitar NullPointException, pero el resultado será una gran mejora porque igual () es un método muy común.
2) Cuando ambos devuelven el mismo resultado, se prefiere valuef () en lugar de toString ()
Porque un objeto vacío lanzará una NullPointException al llamar a ToString (). Si podemos obtener el mismo valor llamando al valor (), debemos usar valueOf (). Esto pasará un valor nulo. Especialmente en casos de clases de embalaje como entero, flotante, doble o bigdecimla.
BigDecimal bd = getPrice (); system.out.println (string.valueOf (bd)); // no arroja npesystem.out.println (bd.tostring ()); // arroja "excepción en hilo" main "java.lang.nullpointerexception"
Si no está seguro de si el objeto que está usando está vacío, use este truco de Java
3) Use un método o biblioteca de clases nulo
Hay muchos componentes de código abierto que ahora le han marcado NULL. Uno de los más comunes son los stringutils de Apache. Puede usar StringUtils.isblank (), isNumberic (), iswhitaSpace () y otras herramientas sin preocuparse por los métodos de NullPointException.
System.out.println (stringUtils.isEmpty (null)); system.out.println (stringUtils.isblank (null)); system.out.println (stringUtils.isnumeric (null)); system.out.println (stringUtils.isAllUpperCase (null)); emergencia: salida
Pero no olvide leer la documentación sobre métodos y clases de seguridad nulos antes de llegar a conclusiones. Este es otro mejor ejercicio de Java, que no requerirá que haga mucho esfuerzo, pero lo hará mucho progreso.
4) Evite devolver la colección vacía o la matriz vacía en lugar de devolver el NULL del método
Esta técnica de Java también se menciona en "Efection Java" de Joshua Bloch. Este libro también es una fuente para mejorar las capacidades de codificación de Java. Al devolver una colección vacía o una matriz vacía, se puede determinar que las llamadas básicas como tamaño () y longitud () no arrojarán una NullPointException. La clase de colección puede proporcionar una lista, establecimiento y mapa vacío conveniente, (estos) tienen colecciones.
El código es el siguiente;
Lista pública GetOrders (cliente cliente) {List date = collections.empty_list; resultado de retorno; }Del mismo modo, puede usar colección.empty_list, colección.empty_set y colección.empty_map en lugar de devolver nulo.
5) Comente con @notnull y @nullable
Al escribir, puede definir una nulabilidad de la convención, debe solicitar si este método es seguro al usar comentarios como @notnull y @nullable. Los compiladores modernos, IDES y otras herramientas pueden leer este comentario para ayudarlo a hacer un cheque vacío o decirle si necesita un cheque vacío. Intellijide y Findbugs ya apoyan esta anotación. Estos comentarios también forman parte de JSR 305 (nota del traductor: se puede entender como el estándar de Java). Al ver @notnull y @nullable, los programadores pueden decidir si hacer el cheque vacío. Por cierto, esta es la nueva mejor práctica para los programadores de Java, aunque lleva un poco de tiempo adaptarse.
6) Siga las convenciones y defina valores predeterminados razonables
En el campo Java, una de las mejores maneras de evitar punteros nulos es hacer acuerdos y cumplir con ellos. La mayoría de las concepciones de NullPointEx se producen porque usan información incompleta o no se proporcionan con todas las dependencias para crear objetos. Si no permite crear objetos incompletos y negar dichos requisitos, puede evitar muchas concepciones nullpointEx que ocurran después de un tiempo. Si se permite crear el objeto, entonces debe establecer un valor predeterminado razonable. Por ejemplo, no se puede crear un objeto de empleado sin los atributos de identificación y nombre, pero puede tener un número pghone opcional. Si el empleado no tiene un número de teléfono, devuelva un 0 en lugar de devolver un valor nulo. Pero este tipo de procesamiento debe manejar la verificación de valores nulos con mucho cuidado en lugar de verificar la entrada ilegal. También tenga en cuenta que al definir un valor nulo o no, recuerde a la persona que llama que tome la decisión informada. Elegir o aceptar valores nulos después del fallo también es un diseño importante al que debe prestar atención.
7) Si usa una base de datos para almacenar su objeto de dominio (objeto Demain)
Por ejemplo: cliente, pedidos, etc., entonces debe definir algunas restricciones en los valores nulos en la base de datos. Debido a que la base de datos puede requerir datos de múltiples fuentes, tener una verificación de los valores nulos en la base de datos garantizará la integridad de los datos. Mantener limitaciones en los valores nulos en la base de datos también le permitirá reducir la verificación nula en Java. Cuando toma un objeto de la base de datos, puede asegurarse de que esas propiedades puedan estar vacías y que esas propiedades no pueden estar vacías, lo que minimizará el código para esos cheques vacíos.
8) Use el modo de objeto vacío
Esta es otra forma de evitar NullPointException en Java. Si un método devuelve un objeto, que la persona que llama quiere iterar sobre el objeto, que la persona que llama necesita usar algunos métodos similares a Collection.Iterator () para devolver el iterador. Si la persona que llama no tiene ninguno de los métodos anteriores, es posible que el objeto vacío se devuelva en lugar de NULL. Un objeto vacío es un objeto especial que tiene diferentes significados en diferentes contextos. En los casos en que los métodos como estos devuelven el Continter o el tipo de conexión, el objeto vacío (objeto vacío) en el interior debe usarse en lugar de devolver vacío.