所以我几天前开始学习java并得到一个问题。对于下一个表达式:
String foo=123;
是不允许的。但是,在System.out.printIn()
中,我们可以使用以下内容:
int x=5;
System.out.println(x);
由于不允许隐式地为字符串分配整数,为什么上面的表达式有效?有人可以详细解释一下吗?我也想知道我们什么时候可以使用这种隐含的东西,何时我们不能。
答案 0 :(得分:15)
您可以使用整数调用println的原因是因为该方法已重载。基本上有多个叫做println的方法,其中一个接受一个整数。
看看这里:PrintStream
答案 1 :(得分:10)
PrintStream System.out
:
println(boolean x)
println(char x)
println(int x)
println(long x)
println(float x)
println(double x)
println(char x[])
println(String x)
println(Object x)
答案 2 :(得分:3)
班级out
的静态成员System
是PrintStream
,其中有一个签名为println(int)
的方法。
答案 3 :(得分:3)
查看PrintStream
的API(System.out
是PrintStream
)。它包含方法println()
,println(boolean)
,println(char)
,println(char[]
),println(double)
,println(float)
,println(int)
,{{1} },println(long)
和println(Object)
。这称为method overloading(向下滚动以查找有关方法重载的部分)。
如果您想从整数文字中创建println(String)
,可以在其周围添加引号(String
)或使用Integer.toString
(String s = "123";
)或{{ 3}}(String s = Integer.toString(123);
)。
答案 4 :(得分:1)
我假设您的意思是打印不打印,java为每种数据类型都有一个println函数,因此您可以在布尔值,整数,字符串等上调用println,它将选择正确的函数。 当然,您不能将整数分配给字符串变量,因为它们是不同的类型。