编程语言
首页 > 编程语言> > java-使用for循环将值直接传递给setter方法

java-使用for循环将值直接传递给setter方法

作者:互联网

这是我的getter和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);
}

这是我的代码,用于将值手动传递给setter方法

Sample sample = new Sample();   
sample.setTest(new int[]{0,1,2,3});

我想要的是这样的:

for (int i = 0; i < 3; i++) {
    //code here for passing the value to the setter
}

这在我这边工作,有没有办法使用for循环传递此值?我也想知道如何整体传递数组吗?

解决方法:

不,您不能将for循环作为新测试数组值的值传递.

您可以做的是编写一个单独的函数,该函数从for循环中为您生成一个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循环):

sample.setTest(getNumbers(0, 3, 1));

或者,对于更简单的数组(因此,从startNumber到endNumber的整数范围以1为增量),您可以执行以下操作:

sample.setTest(IntStream.rangeClosed(1, 10).toArray());

标签:for-loop,getter-setter,arrays,java
来源: https://codeday.me/bug/20191111/2018516.html