Java での私の知識によると、型変換を絞り込む際に、ソースがバイトの範囲内にある定数の場合、次のものが許可されます。
byte b=10; // allowed because 10 is in range of byte and 10 is a constant
しかし、これを入力すると:
byte b=10l; // this is not allowed although 10 is in range of byte and is a constant
なんでそうなの ?これらの縮小変換が Java で行われる正確な規則を教えてください。