对于long数据类型,我可以用L后缀一个数字,以使编译器知道它很长.字节和短字怎么样?
作为动机,以下产生类型不匹配错误:
List<Short> a = Arrays.asList(1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)
Ste*_*n C 17
你实际谈论的是整数文字(1)与长文字(1L).Java中实际上没有短文本或字节文字.但它通常无关紧要,因为存在从整数文字到类型的隐式转换byte,short以及char.从而:
final byte one = 1; // no typecast required.
Run Code Online (Sandbox Code Playgroud)
仅当文字在所需范围内时,才允许隐式转换.如果不是你需要一个类型演员; 例如
final byte minusOne = (byte) 255; // the true range of byte is -128 .. +127
Run Code Online (Sandbox Code Playgroud)
在其他情况下需要进行显式转换; 例如,消除方法重载的歧义,或强制表达式中的特定解释.在这种情况下,您需要使用强制转换来进行转换.
你的例子是另一个案例.
但最重要的是,没有用于表达byte或short文字的Java语法.
| 归档时间: |
|
| 查看次数: |
10520 次 |
| 最近记录: |