根据Java语言规范:
将表达式的值分配给变量(第15.26节)时,将发生赋值转换:必须将表达式的类型转换为变量的类型。
此外,如果该表达式是类型为byte,short,char或int的常量表达式(第15.28节):
如果变量的类型为byte,short或char,并且常量表达式的值可以表示为变量的类型,则可以使用缩窄基元转换。
如果变量的类型为:
,可以使用变窄的原始转换,然后是装箱转换。
字节,常量表达式的值可以用字节类型表示
短且常量表达式的值可以表示为short类型。
字符,常量表达式的值可以用char类型表示。
这对我来说很有意义,假设整数文字和整数常量表达式在目标类型范围内时,会将它们隐式转换为short,byte和char类型。
这是否意味着从short和byte类型(例如short到byte,short到char,byte到char)类型时,缩小隐式强制转换是无关紧要的,因为从我的理解来看,没有这样的short / byte文字或常量表达式?