Java 中没有简单的构造来重复某件事 N 次。当然,我们可以创建一个 for 循环,但在绝大多数情况下,我们并不真正关心在循环中创建什么样的变量。我们只是希望代码的某些部分重复 N 次,仅此而已。
随着 Java 8 中引入 lambda 表达式,您可以使用如下内容:
public class RepeatDemo { public static void main(String[] args) { // Повтор одной строки repeat(10, () -> System.out.println("HELLO")); // Повтор нескольких строк repeat(10, () -> { System.out.println("HELLO"); System.out.println("WORLD"); }); } static void repeat(int n, Runnable r) { for (int i = 0; i < n; i++) r.run(); } }
它可能不如旧的 for 循环那么赏心悦目或明显,但它确实消除了循环中的额外变量。如果 Java 8 能更进一步,为 lambda 表达式中的参数提供“巧克力”语法,那么我们就会得到类似 Scala/Groovy 代码的东西,这将使代码更加直观。例如:
// Ну разве не здорово было бы иметь такую конструкцию в Java? repeat(10) { System.out.println("HELLO"); System.out.println("WORLD"); }
来源
GO TO FULL VERSION