OptionalInt como argumento de entrada

user1244932:

Leí ¿Por qué no de Java 8 opcional puede utilizar en los argumentos . Pero ¿qué pasa Optional(Int|Long|Double), son los argumentos contra el uso de ellos como argumento de entrada?

Como he entendido bien, no pueden ser no está vacío, pero con nula (el argumento principal argumento en contra Optional<X>de los parámetros de entrada), pero puede ser que hay otros arrecifes? ¿Debo usar OptionalInto Integercon nully sin nullvalor?

Ousmane D .:

Esta idea de no utilizar Opcionales como parámetros de método no sólo es específica a Optional<T>pero todo tipo de Opcionales.

Cuando tu dices:

Como he entendido bien, no pueden ser no está vacío, pero con nula (el argumento principal argumento en contra Optional<X>de los parámetros de entrada)

Antes que nada vamos a obtener la terminología correcta, cuando una Optional<X>contiene un no nulo referencia decimos que es presente demás decimos que la Optional<X>está vacía o ausente . no debes decir una Optional<X>contiene nula .

Todos Opcionales puede estar vacío, independientemente de si se trata de un contenedor para un objeto de tipo To de tipos primitivos.

por ejemplo, si usted se asoma en el OptionalInt documentación de la clase, que dice:

Un objeto de contenedor que puede o no puede contener un valor int . Si un valor está presente, isPresent () devolverá verdadero y getAsInt () devolverá el valor.

El énfasis es mío.

Cuando el facultativo no contiene un valor entero, entonces es un opcional vacía.

¿Debo usar OptionalInt o entero con nula y no valor nulo?

En cuanto al uso OptionalInto Integerrealmente depende de su caso de uso.

  • Como todos los de opcional tanto para un contenedor de tipo Ty tipo primitivo Son descriptivos y habilitar uno para aplicar diferentes tipos de operaciones para extraer el valor si está presente o hacer otra cosa en su ausencia.
  • Cualquier Integercampo puede asignar el valor nulo .
  • Uno puede volver nullen cualquier método que tiene Integercomo el tipo de retorno.
  • OptionalIntcampos (controversiales) nunca deben ser assinged nullcomo que en contra del propósito de la utilización opcional en el primer lugar.
  • Uno nunca debe volver nullen cualquier procedimiento que tiene el tipo de retorno OptionalIntde nuevo ya que en contra del propósito de la utilización opcional en el primer lugar.

etc ..

Además, algunas personas realmente desalientan el uso de Opcionales primitivas simplemente porque carecen de los map, flatMapy filtermétodos.

En esencia, no hay ninguna regla que use siempre Opcionales o vice vera, en lugar escoger el API que mejor se adapte a sus necesidades.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=221867&siteId=1
Recomendado
Clasificación