Błąd kompilacji Java w przypadku castingu

Poniższy kod daje mi błąd czasu kompilacjiNiezgodność typu: nie można przekonwertować z int na bajt

int i = 10;
byte b = i;

ale poniżej nie

 final int i = 10;
 byte b = i;

Nie rozumiem, dlaczego kompilator zachowuje się w przypadku finału?