sHA*_*ILU 2 java casting downcast
任何人都知道为什么编译器不能在'short'中输出值'7'?显式转换正在工作,但在传递参数时它不起作用!
class Alien {
String invade(short ships) { return "a few"; }
String invade(short... ships) { return "many"; }
}
public class Wind {
public static void main(String [] args) {
short temp = 7;
System.out.println(new Alien().invade(7));
}
}
Run Code Online (Sandbox Code Playgroud)
整数文字(这是我们在这里讨论的)是int值,除非它们有一个后缀来表示它们是long值.
如果整数文字后缀为ASCII字母L或l(ell),则整数文字的长度为long; 否则它的类型为int(§4.2.1).
但是铸造很好.它也完全有可能有一个不是文字的常量.例如:
public static final short THIS_IS_A_SHORT = 7;
Run Code Online (Sandbox Code Playgroud)
这THIS_IS_A_SHORT是一个类型的常量short.在这种情况下,你甚至不需要演员,因为它是一个任务.作业受JLS第5.2节的约束,其中包括:
如果变量的类型是byte,short或char,则可以使用缩小的基元转换,并且常量表达式的值可以在变量的类型中表示.
一种方法的说法是不服从分配的转换.
| 归档时间: |
|
| 查看次数: |
1235 次 |
| 最近记录: |