0

所以,我试图找到一种方法将数字的列表或其他东西(“列表”不是“列表”的实际 Java 定义,而是白话用法)放入数组中。它会是这样的:

Land FlintsFinger = new Land(0,0,1,0,9, 1 2 3);

然后后面的数字进入 Land 中的数组(忽略其他数字)。

是否有任何语法可以即时执行此操作?我知道在 Python 中有元组,但在 Java 中有这样的东西吗?

谢谢!

4

4 回答 4

2

你的意思是这样的:

public class Land {

    private final int[] values;

    public Land(int... values) {
        this.values = values;
    }
}

或者如果前五个参数有其他含义:

public Land(int a, int b, int c, int d, int e, int... values) {
    this.values = values;
}

然后将其称为:

new Land(0,0,1,0,9, 1, 2, 3);

编译器将为您将最后三个值放入一个数组中。但是,没有仅使用空格的文字形式。

于 2012-07-30T18:25:22.377 回答
1

你可以这样做:

Land FlintsFinger = new Land(0,0,1,0,9, new int[]{1, 2, 3});

或者您可以将构造函数更改为:

public Land(int fst, int scn, int thr, int frth, int ffth, int... vals){}

并调用它

Land FlintsFinger = new Land(0,0,1,0,9,1,2,3);

public Land(int... vals)(如果您输入的所有原始值都是整数,则您的构造函数可以缩短)

于 2012-07-30T18:26:32.923 回答
0
public Land(Integer int1, Integer... ints){}

你的意思是可变参数:http ://www.java-tips.org/java-se-tips/java.lang/using-the-varargs-language-feature.html

于 2012-07-30T18:26:04.827 回答
0

你可以改变你的构造函数来接受一个整数数组

int [] params = new int{1,2,3};
Land FlintsFinger = new Land(0,0,1,0,9, params);
于 2012-07-30T18:26:23.510 回答