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