Java中的嵌套函数

Java编程语言是否有任何扩展使创建嵌套函数成为可能?在很多情况下,我需要创建在另一个方法或for循环的上下文中仅使用一次的方法。到目前为止,尽管用Javascript可以很容易地完成,但我迄今仍无法完成。

例如,这无法在标准Java中完成:

for(int i = 1; i < 100; i++){

times(2); //multiply i by 2 and print i

times(i); //square i and then print the result

public void times(int num){

i *= num;

System.out.println(i);

}

}

回答:

Java 8引入了lambda。

java.util.function.BiConsumer<Integer, Integer> times = (i, num) -> {

i *= num;

System.out.println(i);

};

for (int i = 1; i < 100; i++) {

times.accept(i, 2); //multiply i by 2 and print i

times.accept(i, i); //square i and then print the result

}

() ->语法可在定义了一种方法的任何接口上使用。因此,您可以将其与一起使用,Runnable但不能与一起使用List

BiConsumer是java.util.function提供的许多功能接口之一。

值得注意的是,它在后台定义了一个匿名类并实例化了它。 times是对该实例的引用。

以上是 Java中的嵌套函数 的全部内容, 来源链接: utcz.com/qa/434499.html

回到顶部