根据var名称,该方法输出Java中的内容

时间:2015-12-31 15:50:48

标签: java

我写了一个方法来打印我的结果。如果调用参数,我是否可以修改方法以打印不同的消息让我们说' result3 ' ?

在下面的这种情况下,我无法在方法中访问变量 result2 。 Eclipse说"' result2'无法解析为变量"。

        double result2 = addValues(s1,s2,s3);
        printAnswer(result2);

    }

    static void printAnswer (double answer) {
        System.out.println("The answer is:" + " " + answer);
    }

我是否需要修改' printAnswer'一个非静态方法?

2 个答案:

答案 0 :(得分:5)

该方法不知道作为参数传递给方法的变量的名称。此外,可能涉及多个变量

printAnswer(result2+result3);

或根本没有变量

printAnswer(42.53);

提出问题“传递给我的方法的变量的名称是什么?”不可能回答。

您的方法只能对answer参数的值起作用,而不能对用于调用方法的参数表达式起作用。

如果你想区分除了值之外的东西,让你的调用者为你传递一个额外的参数,如下所示:

static void printAnswer (double answer, String name) {
    ...
}

答案 1 :(得分:0)

你不能,也不应该根据变量名来调节输出,只能使用基于变量VALUES的条件

像这样:

static void printAnswer (double answer) {
    if(answer>0){
          System.out.println("The answer is positive: " + answer);
     }else{
          System.out.println("The answer is negative or cero: " + answer);
     }
}

编辑:

如果你想写sum方法所以它需要一个未知数量的值来求和,那么你就像这样:

 public static double addValues(Double... values){
    double sum=0;
    for(Double value:values){
        sum+=value.doubleValue();
    }
    return sum;
}

通过这种方式,您可以像使用任何数组一样了解访问这些参数的参数数量:

values.length

并使用任意数量的参数调用

addValues(1.5,1.6,5.9,2.3);