Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有。。。作为输入变量_Java - Fatal编程技术网

Java 有。。。作为输入变量

Java 有。。。作为输入变量,java,Java,我不太清楚double的目的是什么。。。值 double和。。。值和双值double…表示变元由参数使用 参数double…是double[]值的连接性糖。编译器在编译时进行实际的翻译双值仅表示在参数列表中传递单个参数 varargs从1.5版开始就在Java中,阅读更多内容double…意味着该方法将接受0个或多个双精度值。这些将是价值观中的位置 因此,ChartValues(“dude”,Color.BLUE,1.2,1.5,1.6)将1.2,1.5和1.6放入变量值中双…表示变量参数 这意

我不太清楚
double的目的是什么。。。值


double和。。。值
双值

double…
表示变元由参数使用

参数
double…
double[]值的连接性糖。编译器在编译时进行实际的翻译<代码>双值
仅表示在参数列表中传递单个参数


varargs
从1.5版开始就在Java中,阅读更多内容

double…
意味着该方法将接受0个或多个双精度值。这些将是价值观中的位置


因此,
ChartValues(“dude”,Color.BLUE,1.2,1.5,1.6)
将1.2,1.5和1.6放入变量值中

双…
表示变量参数

这意味着可以传入未指定数量的标量参数

所以我可以像这样调用这个方法

public ChartValue(String name, Color color, double ... values) {
        this.name = name;
        this.values = values;
        this.color = color;
    }   
在构造函数中,它只作为一个数组接收所有的double,因此您可以像

new ChartValue("blue", Color.BLUE, 1.2d, 5.8d, 6.05d, 100.0d)
本页包含以下详细信息:

请注意,每个方法只能使用一次varargs。这将不会编译:

public ChartValue(String name, Color color, double ... values) {
    this.name = name;
    this.values = values;
    this.color = color;

    // at this point, "values" is just an array of doubles.
    System.out.println("Got " + values.length + " values.");
    for (double value : values) {
        System.out.println("Passed in " + value);
    }
}
因为如果你称之为:

public ChartValue(String name, Color... colors, double... values) {
    ...
}

编译程序不知道如何将方法调用中的参数映射到方法定义中的参数。使其工作的规则是varargs必须始终是最后一个参数,并且只能有一个。

我可以调用
test(1,2,3)如果原型是
无效测试(int[]值)
或者它只是以另一种方式工作吗?哦,所以是双重的。。。值与double[]值相同。明白了。@Djon如果使用
test(int[]values)
你就不能这样称呼它,你需要显式使用双数组。我认为这是一个非常有效的问题。。。我不知道为什么有人会投反对票。已经有一些不错的答案了,我来看看!
new ChartValue("blah", Color.BLUE, Color.ORANGE, 5.0d, 6.0d)