这是我的吸气者和二传手:
lookAt
这是我手动将值传递给setter方法的代码
private int[] test;
public int[] getTest() {
return Arrays.copyOf(test, test.length);
}
public void setTest(int[] test) {
this.test= Arrays.copyOf(test, test.length);
}
我想要的是这样的:
Sample sample = new Sample();
sample.setTest(new int[]{0,1,2,3});
这对我有用,有没有办法使用for循环传递这些值?另外我想知道如何传入一个整体数组?
答案 0 :(得分:2)
不,您无法传递for-loop
作为新test
数组值的值。
你可以做的是编写一个sepearate函数,为for-loop
生成一个int数组:
public int[] getNumbers(int start, int end, int increment) {
List<Integer> values = new ArrayList<>();
for (int i = start; i < end; i += increment) {
values.add(i);
}
return values.stream().mapToInt(i->i).toArray();
}
然后可以这样使用(根据你问题中的for-loop
):
sample.setTest(getNumbers(0, 3, 1));
或者对于更简单的数组(因此只是从startNumber到endNumber的一系列整数,增量为1),您可以执行以下操作:
sample.setTest(IntStream.rangeClosed(1, 10).toArray());
答案 1 :(得分:1)
nbokmans的回答是现场的;但我建议你回到这里,看看你的要求。
我的意思是:你应该决定是否要
换句话说:如果您常见的事情将单个值添加到该字段...那么您应该设计相应的界面。像这样:
public class Whatever {
private final List<Integer> data = new ArrayList<>();
public void append(int value) {
data.add(value);
}
public void getData() {
return new ArrayList<>(data);
}
例如。