The compilation error happen because it didn't met the first 2 out of the 3 condition for implicit narrowing primitive conversion. It is written in the book of Khalid Mughal, entitle "Programmers Guide to Java Certification 2nd ed.", which are as follows:
1. The source is a constant expression of either a byte, short, char, or int type;
2. The destination type is either byte, short, or char type; and
3. The value of the source is determined to be in the range of the destination type at compile time.
I hope that satisfy your question.