Java 当我试图调用在main方法中创建的方法时,我遇到了错误
当我编译并运行程序时,会出现以下错误:Java 当我试图调用在main方法中创建的方法时,我遇到了错误,java,Java,当我编译并运行程序时,会出现以下错误: public class MyClass { public static short subtractNumbers (short a, byte b, float k ) { int x=(short)a; int y=(short)b; int z=(short)k; return (short)(x+y-z); } public static void
public class MyClass
{
public static short subtractNumbers (short a, byte b, float k )
{
int x=(short)a;
int y=(short)b;
int z=(short)k;
return (short)(x+y-z);
}
public static void main (String[] args)
{
System.out.println(subtractNumbers(127,127,0.0f));
}
}
为什么代码会导致错误?我想知道
提前感谢您的帮助,我们将不胜感激。因为错误表明您正在传递2个整数,而不是一个短整数和一个字节。尝试:
error: method subtractNumbers in class MyClass cannot be applied to given types;
System.out.println(subtractNumbers(127,127,0.0f));
required: short,byte,float
found: int,int,float
reason: actual argument int cannot be converted to short by method invocation conversion
或将您的方法更改为:
System.out.println(subtractNumbers((short) 127, (byte) 127, 0.0f));
在调用subtractNumbers方法之前,请尝试创建变量。这样,您就可以设置所需的类型,它不会抱怨类型不一样。错误的原因是,在Java中,整数文本是一个
int
,除非:
long
,例如128L
(遗憾的是,short
或字节没有说明符)
short s=1代码>
(short)4
int
传递给一个需要long
int
到short
或byte
的转换称为缩小原语转换,如果int
太大而无法装入short
,则转换通常会失败
您正在向
subtractNumbers
方法传递2个完整整数,而实际上它接受一个short、一个byte和一个float。
public static short subtractNumbers(int a, int b, float k) {
return (short) (a + b - (int) k);
}