Java 当方法与另一个方法共享相同的名称时,如何使if语句中的变量指向所选方法?

Java 当方法与另一个方法共享相同的名称时,如何使if语句中的变量指向所选方法?,java,Java,分配给我的任务是关于范围的。因此,我别无选择,只能让两个方法共享同一个名称。我已经用两种方法做了计算,一种是乘法,另一种是加法。然后我编写了if语句,测试语句的有效性是否正确。这一切似乎都很好,除了我的两个if语句都指向我的乘法方法。我不知道如何使我检查加法有效性的if语句指向进行加法计算的方法 代码如下: **TestCalculator class** public class TestCalculator { Double x; String string = "b";

分配给我的任务是关于范围的。因此,我别无选择,只能让两个方法共享同一个名称。我已经用两种方法做了计算,一种是乘法,另一种是加法。然后我编写了if语句,测试语句的有效性是否正确。这一切似乎都很好,除了我的两个if语句都指向我的乘法方法。我不知道如何使我检查加法有效性的if语句指向进行加法计算的方法

代码如下:

**TestCalculator class**
public class TestCalculator {
        Double x;

 String string = "b";
 Double doubleObject = 1.0;
 double doublePrimitive = 2;


        /*
        * Chops up input on ' ' then decides whether to add or multiply.
        * If the string does not contain a valid format returns null.
        */

        public void testParsing() {

         if (x(12.0) == 17.0) {
            System.out.println("Adding Success");}
            else {
                    System.out.println("Adding Fail");
                    }
         if (x(12.0) == 60) {
            System.out.println("Multiplying Success");}
            else {
                    System.out.println("Multiplying Fail");
                    }
        }
        /*
        * Adds the parameter x to the instance variable x and returns the answer as a Double.
        */
        public Double x(Double x){
            System.out.println("== Adding ==");
            //Sum here
            this.x = x;
            return new Double(x + 5);
}
        /*
        * Multiplies the parameter x by instance variable x and return the value as a Double.
        */
        public Double x(double x){
                System.out.println("== Multiplying ==");
                this.x = x;
                return new Double(x * 5);
        }
}
主类

public class Main {

public static void main(String[] args) {

TestCalculator call = new TestCalculator();

call.testParsing();

}

}
我知道adding方法与其他方法是不同的数据类型。一个是对象,另一个是原语,但我不知道如何使adding if语句中的x指向两个数字相加的方法,而不是将两个数字相乘的方法。谢谢你的帮助

我知道adding方法与其他方法是不同的数据类型。一个是对象,另一个是基元


你说得对
Double
是Java对
Double
原语的包装类。您正在对
double
文本调用您的方法,这意味着正在调用带有原语参数的方法。要使用对象
Double
参数的方法,首先必须使用
Double
构造函数(即
newdouble(12.0)
)将值转换为
Double
)。当您将其传递给方法时,Java会将其识别为对象并调用相应的方法。

这里最好的解决方案是将方法重命名为
addX
multiplyX
。否则您可能会遇到一些完美的
自动装箱问题。