如何调用带有短参数的方法?

How can you call a method with short parameters?

我正在 java 中做一个关于重载、覆盖和接口的作业。 其中一个部分要求我创建重载方法,包括 short、int、float 和 double。这些方法只需要对数字求和,很简单。

这是我卡住的地方:

public short sum(short x, short y)
{
    System.out.println("I'm method on line 10");
    return x+y;
}

我有这个方法,eclipse 通过建议我进行 (int) 类型转换来不断标记。如果我那样做,就会破坏这项任务的目的。所以在做了一些谷歌搜索之后,我写了这个:

public short sum(short x, short y)
{
    System.out.println("I'm method on line 10");
    short t = (short)(x+y);
    return t;
}

在我的主要方法中,我创建了一个对象:

public static void main(String[] args) 
{
    OverloadingSum obj1 = new OverloadingSum();     
    System.out.println(obj1.sum(3,3));
}

所以,当我 运行 它会告诉我它对值 (3,3) 使用了 int sum(int x, int y) 方法,而不是我想要的短求和方法它使用。我的问题是我可以测试哪些数字以便调用 short 方法而不是 int 方法。

传递参数时需要类型转换,使用:

public static void main(String[] args) 
{
OverloadingSum obj1 = new OverloadingSum();     
System.out.println(obj1.sum((short)3,(short)3));
}

整数文字隐式具有 int 类型,从 int 转换为 byte 或 short 可能会丢失信息,因此需要显式转换。

为此,您可以将参数显式转换为 shorts 以强制调用 short 方法。

例如,更改:

System.out.println(obj1.sum(3,3));

至:

System.out.println(obj1.sum((short) 3,(short) 3));
obj1.sum(3,3)

您需要转换值:

obj1.sum((short)3,(short)3)

或使用变量:

short v1 = 3;
short v2 = 3;
// ...
... obj1.sum(v1,v2)...

你可以试试这个

public static void main(String[] args) {
        short x=3;
        short y=3;
        addShort(x,y);

    }

    public static void addShort(short a,short b)
    {
        short c=(short)(a+b);

    }

除此之外,您需要在像这样传递它们时显式转换

addShort((short) 3,(short)3);