Narrowing Primitive conversion are relatively picky

Let me explain why?
Basically when you narrow int to a byte
there are 2 ways you can do it
1. byte b = 90; //declaration and assignment in a single line
2. final int i =90;
byte b = i; //Observe the integer being declared as final
But in both the cases the int value MUST be in the range of
Destination type (ie byte/short/char)
Above all this implicit narrowing will be applicable to
(Byte/Short/Char/Ints) only