And*_*ren 10 java lambda logging exception stack-trace
我正在寻找Java 8堆栈跟踪中lambda周围发生的部分的定义
例如这段代码
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));
}
Run Code Online (Sandbox Code Playgroud)
有时产生这种例外.
at [CLASS].lambda$null$2([CLASS].java:85)
at [CLASS]$$Lambda$64/730559617.accept(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
异常中描述的不同部分是什么?什么是"null","2","64","730559617"和"Unknown Source"告诉我什么?
这里可以找到一个更详细的例子(但是这里我的例外中的"null"不存在).http://blog.takipi.com/the-dark-side-of-lambda-expressions-in-java-8/
该生成的类名没有标准定义。这是故意避免您编写依赖于它的代码,这使设计人员以后很难更改它。
话虽如此,您几乎看不到什么;
$是lambda的全局计数器。这取决于生成lambda的代码的顺序。“未知源”告诉您此生成的代码没有与之关联的调试信息。
我们正在寻找一个用于更改lambda的toString的库,以使您了解与之关联的代码。也就是说,至少在平凡的情况下,它看起来像lambda的代码。