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

Java 使用for循环将值直接传递给setter方法,java,arrays,for-loop,getter-setter,Java,Arrays,For Loop,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(); samp

这是我的能手和能手:

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(int i=0;i<3;i++){
//这里的代码用于将值传递给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();
}
或者,对于更简单的数组(仅从startNumber到endNumber的整数范围,增量为1),可以执行以下操作:

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

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);
  }
公共类{
私有最终列表数据=新的ArrayList();
公共void追加(int值){
数据增值;
}
public void getData(){
返回新的ArrayList(数据);
}

例如。

不清楚你的意思。你能举例说明你想写什么吗?
for(int i=0;i>3;i++)
我想你的意思是
I<3
你可以将值放入循环数组中并通过setter,或者只是创建另一个方法将单个值推送到你的私有财产中。不过,这个问题很好;-)@GhostCat谢谢:)希望这个问题也能帮助其他人:)谢谢你的回答和解释,我想要的是一个允许作为一个整体传递数组的界面。我将更新我的问题。谢谢你的回答并给我其他选项!:)真的很好;-),喜欢它…你也“很好”省去了一个微妙的细节,让我给出另一个答案;-)x2
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);
  }