Java 为什么总是调用整数参数方法而不是短参数方法
这是我的代码:Java 为什么总是调用整数参数方法而不是短参数方法,java,overloading,Java,Overloading,这是我的代码: public class Test { public static void main(String arg[]) { new Test().method1(5); } public void method1(int b) { // integer method System.out.println("integer "); } public void method1(short a) { // short
public class Test
{
public static void main(String arg[]) {
new Test().method1(5);
}
public void method1(int b) { // integer method
System.out.println("integer ");
}
public void method1(short a) { // short method
System.out.println("short");
}
}
我正在运行这个类,它给我的结果是
integer
。为什么它没有给出short
?文本5
具有类型int
,这就是为什么需要int
的方法被调用
newtest().method1((short)5)
将调用需要short
的方法文本5
具有类型int
,这就是需要int
的方法被调用的原因
newtest().method1((short)5)
将调用需要short
的方法文本5
具有类型int
,这就是需要int
的方法被调用的原因
newtest().method1((short)5)
将调用需要short
的方法文本5
具有类型int
,这就是需要int
的方法被调用的原因
newtest().method1((short)5)
将调用需要short
的方法,因为文本5
默认理解为int
。如果要调用method1(短a)
方法,需要显式执行强制转换:
new Test().method1((short) 5);
因为文本
5
默认理解为int
。如果要调用method1(短a)
方法,需要显式执行强制转换:
new Test().method1((short) 5);
因为文本
5
默认理解为int
。如果要调用method1(短a)
方法,需要显式执行强制转换:
new Test().method1((short) 5);
因为文本
5
默认理解为int
。如果要调用method1(短a)
方法,需要显式执行强制转换:
new Test().method1((short) 5);
Java整数文本的默认类型是int,这就是调用integer方法的原因。Java整数文本的默认类型是int,这就是调用integer方法的原因。Java整数文本的默认类型是int,这就是调用integer方法的原因。Java整数文本的默认类型是int,这就是原因integer方法正在被调用。您必须应用
类型转换,因为您愿意调用接收短消息的函数
尝试调用:(short)5
您必须应用类型转换
,因为您愿意调用接收short的函数
尝试调用:(short)5
您必须应用类型转换
,因为您愿意调用接收short的函数
尝试调用:(short)5
您必须应用类型转换
,因为您愿意调用接收short的函数
试着用:(short)5
呼叫,这是因为,如其他答案所述,5
本身表示int
。您可以通过附加L
来表示long
,因此5L
将被视为long
。如果需要字节
或短
,则必须显式强制转换
您可能有很好的理由想要一个采用short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现short
比int
运行得慢
(当然,如果你专门做16位算术,那么你可能仍然需要使用short
)这是因为,如其他答案所述,5
本身表示int
。您可以通过附加L
来表示long
,因此5L
将被视为long
。如果需要字节
或短
,则必须显式强制转换
您可能有很好的理由想要一个采用short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现short
比int
运行得慢
(当然,如果你专门做16位算术,那么你可能仍然需要使用short
)这是因为,如其他答案所述,5
本身表示int
。您可以通过附加L
来表示long
,因此5L
将被视为long
。如果需要字节
或短
,则必须显式强制转换
您可能有很好的理由想要一个采用short
的方法,但请记住这是非常罕见的。当然,出于性能原因,您不希望这样做。Java默认使用32位int
,因为几乎所有处理器都可以在本地使用32位整数。您可能会发现short
比int
运行得慢
(当然,如果你专门做16位算术,那么你可能仍然需要使用short
)这是因为,如其他答案所述,5
本身表示int
。您可以通过附加L
来表示long
,因此5L
将被视为long
。如果需要字节
或短
,则必须显式强制转换
也许你有一个