Puede que se de el caso de que encuentres algún fallo en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes subir el código al trabajo final.
Solución:
long
es un primitivo, que deber tener un valor Sencillo.
Long
es un objetoasi que:
- puede ser
null
(que significa lo que quieras, pero “desconocido” es una interpretación común) - se puede pasar a un método que acepta un
Object
,Number
,Long
olong
parámetro (el último gracias al desempaquetado automático) - se puede utilizar como un tipo de parámetro genérico, es decir
List
está bien, peroList
es no DE ACUERDO - se puede serializar/deserializar a través del mecanismo de serialización de Java
Utilice siempre lo más sencillo que funcione, así que si necesita alguna de las características de Long
usar Long
de lo contrario usar long
. La sobrecarga de un Long
es sorprendentemente pequeño, pero está ahí.
No creo que haya una sola respuesta correcta. Algunas sugerencias:
-
La mayor diferencia que veo entre
long
yLong
en este contexto es queLong
tal veznull
. Si existe la posibilidad de que le falten valores, elLong
objeto será útil comonull
puede indicar valores faltantes. Si está usando primitivas, tendrá que usar algún valor especial para indicar que falta, lo que probablemente será un desastre. No es probable que la velocidad o el tamaño sean un problema a menos que esté planeando hacer una array de un millón de estas cosas y luego serializarlas. -
Mi preferencia por la lógica de validación es lanzar algún tipo de personalizado
ValidationException
en el punto en que la cosa podría fallar. Si solo está creando estas cosas con un constructor, lo más simple sería validar allí, por ejemplopublic ClientInput(Long userid, Long clientid, Map
parameterMap, Long timeout_ms, boolean debug) throws ValidationException if (userid == null) throw new ValidationException("UserId is required"); ...etc, etc...
En última instancia, el ValidationException
solo es útil si puede atraparlo en un punto en el que pueda hacer algo útil con él: devolverlo a un usuario o lo que sea.
1 Long es la contraparte orientada a objetos de long. La diferencia es la siguiente, y se aplica a Float to float, Integer to integer, etc.
- long es un tipo primitivo, mientras que Long es una clase de Java (por lo que heredará Object).
- long debe asignarse con un número válido, mientras que Long puede null
- las instancias largas no pueden usar los beneficios de OO, mientras que las instancias largas son objetos Java reales
- Long es serializable, por lo que será muy útil al realizar operaciones de E/S de archivos, bases de datos o redes.
- long es más eficiente que Long teniendo en cuenta el espacio de memoria y la velocidad de procesamiento
Si está haciendo cálculos pesados, use tipos primitivos. De lo contrario, si le preocupa más el diseño, las contrapartes de objetos serán muy útiles.
2 Dado que no está utilizando ningún marco si estoy observando correctamente, le sugiero que haga una interfaz como Validado con un metodo bool validar(). Y cada vez que intente ingresar una entrada en la base de datos, llame a validar por adelantado.
Reseñas y valoraciones
Eres capaz de defender nuestra tarea ejecutando un comentario y valorándolo te lo agradecemos.