and*_*dyf 20 java eclipse lambda call-hierarchy
这是我的示例java代码:
public class Test {
public static void main(String[] args) {
methodDepth0(
()->
methodDepth1(
()->
methodDepth2()
)
);
}
static Object methodDepth2() {
return null;
}
interface MyIF {
void call();
}
static void methodDepth0(MyIF myIf){
myIf.call();
}
interface MyIF2 {
void call();
}
static void methodDepth1(MyIF2 myIf2){
myIf2.call();
}
}
Run Code Online (Sandbox Code Playgroud)
当我methodDepth2()从Eclipse(4.4)打开方法的调用层次结构时,
open call hierarchy停止搜索下一个调用者:

我期望的是打开方法的调用层次结构,methodDepth1()直到该main方法.

据我所知,缺乏调用层次结构深度是由于在运行时对代码进行(重新)评估造成的。Java 语言规范中的15.27.4 Lambda 表达式的运行时求值对此进行了解释。
在运行时,lambda 表达式的求值类似于类实例创建表达式的求值,只要正常完成会生成对对象的引用。lambda 表达式的求值与 lambda 主体的执行不同。
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |