我想一个简单的Java功能转换为拉姆达8功能,不带任何参数,然后调用它:lambda函数在Java中8,没有参数和返回值
public int getMissing() {
return 0;
}
如何上面java8拉姆达转换格式?
我想一个简单的Java功能转换为拉姆达8功能,不带任何参数,然后调用它:lambda函数在Java中8,没有参数和返回值
public int getMissing() {
return 0;
}
如何上面java8拉姆达转换格式?
目前尚不清楚你打算用这个值做什么,但发电机的形式() -> Int
- 有点像,
IntStream.generate(() -> 0).limit(1).forEach(System.out::println);
如果省略了limit(1)
那么你会得到零无限多,如果您需要保留订单使用forEachOrdered
(而不是forEach
)。
要有一个lambda函数,你不需要输入任何东西或输出任何东西。
Java代码的入口点需要具有特定的格式,如文档中所述。
http://docs.aws.amazon.com/lambda/latest/dg/get-started-step4-optional.html
你可以使用任何代码转换器转换成Java代码,按照上面的入口点指示,上传和调用外部URL(通过API网关)或测试与AWS控制台测试按钮。
你的情况是Supplier
在Java中8
Supplier<Integer> supplier =() -> 0;
System.out.println(supplier.get());
LAMBDA解决类似的问题,与匿名的类和接口HAVA的一种方法。 Java8具有预定义的函数接口(Function,Predicate,Consumer),它们都接受参数。您可以定义没有参数的自定义功能界面。
你不直接将方法转换为lambda表达式。 Lambda是或多或少地实现了功能接口,而无需传统匿名内部函数方法的开销。
所以,如果你想把它作为一个lambda来传递,你需要找到一个匹配的Functional Interface并为它指定一个lambda。
在这种情况下,你必须不带参数,返回一个int
和可能的选择之一是使用IntSupplier
的方法:
IntSupplier supplier =() -> 0;
现在,您可以通过调用它:
supplier.getAsInt()
如果你想返回一个盒装Integer
,你需要使用一个通用的Supplier<T>
:
Supplier<Integer> supplier =() -> 0;
supplier.get(); // 0
https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html – pvg