为什么要调用带有int i
签名的栏?
public class Test {
public static void main(String[] args) {
bar(5); // What type of the integer "5"?
}
public static void bar(short i) {
System.out.println("short");
}
public static void bar(int i) {
System.out.println("int");
}
public static void bar(long i) {
System.out.println("long");
}
}
我已经检查了Oracle的文档15.12. Method Invocation Expressions和15.28. Constant Expressions,但仍然不知道。
有人可以解释constants expression
的类型吗?就像" 5"以上?
谢谢!
答案 0 :(得分:0)
在Java中,当您编写普通的文字整数时,始终假定它是int
类型,除非您通过将其强制转换为其他类型,或者为{添加postfix l
来指定。 {1}},long
f
。例如:
float
答案 1 :(得分:0)
5是Integer Literal。由于您已经拥有JLS的副本,因此这是相关部分。
3.10.1整数文字 - 整数文字可以用十进制(基数10),十六进制(基数16),八进制(基数8)或二进制(基数2)表示。
如果整数文字后缀为ASCII字母L或l(ell),则其长度为long; 否则它的类型为int(§4.2.1)。
答案 2 :(得分:0)
你的问题有点不清楚...当你用简单的形式写一个数字时(例如:5,6,105,20),它会自动成为422 error "'{"errors":{"base":["No recipients. At least one user should be subscribed for GCM (Android Push) (through SDK or REST API)"]}}'"
。如果您希望它为int
或short
,您必须声明它,如下所示:
long
或
short s = 5