java-在JShell中声明的方法是lambda?
作者:互联网
我对JShell中声明的方法如何在后台实现感到有些好奇.
例如.
int add(int x,int y){
return x+y;
}
在上面声明的方法实例BiFunction之上吗?
可能是一个愚蠢的问题,但只是出于好奇.
解决方法:
那是一个普通的常用方法,为什么要将其创建为BiFunction?当然,除非您告诉它.
有一个名为jdk.jshell.JShell的顶级类保存此方法(或任何其他状态).但您不能使用它来声明方法引用:
jshell> int add(int x, int y) { return x + y; }
意味着这行不通:
jshell> BiFunction<Integer, Integer> by = JShell::add; // or this::add
您将不得不将该add方法包装在一个类中:
jshell> class Foo { static int add(int x, int y) { return x + y; } ...
然后分配它:
jshell> BiFunction<Integer, Integer, Integer> bi = Foo::add;
bi ==> $Lambda$15/1757676444@ae45eb6
标签:jshell,java-9,java,lambda 来源: https://codeday.me/bug/20191110/2015191.html