Вы добавляете один и тот же объект 4 раза:
Job commonJob = new Job("Build & run", "RUN").tasks(
new ScriptTask().inlineBody("echo Hello!”));
Почему бы не присвоить его переменной и просто использовать вместо этого?
new Stage("Stage 1").jobs(commonJob),
new Stage("Stage 2").jobs(commonJob),
...
Что по-прежнему не идеально, потому что у вас естьStage
создавать объекты "вручную".Если Plan#stages
имеет подпись var-args Plan.stages(Stage ... stages)
, вы можете использовать for-loop
.
Stage[] stages = new Stage[4];
for(int i = 0; i < stages.length; i ++) {
stages[i] = new Stage("Stage " + (i + 1)).jobs(commonJob);
}
и позже new Plan().stages(stages);
Или вы можете сделать это даже функционально, если хотите использовать метод java-9
IntStream.interate
:
new Plan().stages(
IntStream.iterate(1, i -> i < 5, i -> i + 1)
.mapToObj(i -> new Stage("Stage " + i).jobs(commonJob))
.toArray()
);