使用lambda解释Java堆栈跟踪,如“引用”;。lambda$null$2“&;及$$Lambda$”;
我正在寻找Java8堆栈跟踪中lambda周围发生的部分的定义 例如,此代码使用lambda解释Java堆栈跟踪,如“引用”;。lambda$null$2“&;及$$Lambda$”;,java,exception,logging,lambda,stack-trace,Java,Exception,Logging,Lambda,Stack Trace,我正在寻找Java8堆栈跟踪中lambda周围发生的部分的定义 例如,此代码 Object inputData = someData(); myList.stream().forEach(listItem -> { Query query = (Query) listItem.getSingle().apply(this.getId()); Object data = diffUtils.applyProjection(query, inputData);
Object inputData = someData();
myList.stream().forEach(listItem -> {
Query query = (Query) listItem.getSingle().apply(this.getId());
Object data = diffUtils.applyProjection(query, inputData);
myStringCollection.stream()
.filter(destination -> myPredicateMethod(listItem, destination))
.forEach(destination -> myProcessMethod(destination, data));
}
有时会产生这种异常
at [CLASS].lambda$null$2([CLASS].java:85)
at [CLASS]$$Lambda$64/730559617.accept(Unknown Source)
例外情况中描述的不同部分是什么?“空”、“2”、“64”、“730559617”和“未知来源”告诉我什么
在这里可以找到一个更详细的示例(但在这里,我上面的异常中的“null”不存在) 此生成的类名没有标准定义。这是为了避免您编写依赖于它的代码,从而使设计人员以后更难修改它 话虽如此,你能读的很少的东西是
- 类名的第一部分是调用站点的类
- 最后一个
之前的数字是lambda的全局计数器。这取决于lambdas代码的生成顺序$
- 大的数字是一个生成的id。对于同一个lambda,每次运行时它都是不同的,但启动后不会改变