146.Reducción [narrowing] (concepto)

Se dice de la conversión forzada de valores de tipos primitivos.

Es lo contrario de la promoción, convirtiendo de un formato “más rico” en un formato “más pobre”.

A veces se conoce como downcasting de tipos primitivos.

Las promociones toleradas por java son

byte ¬ short ¬ int ¬ long ¬ float ¬ double

         char ¬ int ¬ long ¬ float ¬ double

 

Al contrario que la promoción, el compilador se niega a reducir valores salvo que se le ordene explícitamente:

int x = (int)3.5;    // x carga el valor 3

 

Cuando un valor real se reduce a un valor entero, nos quedamos exclusivamente con la parte entera, sin realizar ningún tipo de redondeo.

Si el formato destino de la conversión es incapaz de contener el valor, el resultado es imprevisible. Pero tenga en cuenta que java no se va a quejar (no se produce ningún error ni de compilación, ni de ejecución).

Temas relacionados

Vademécum