finalizeOperationは(大規模アプリケーションでの生産に)実行されている:クラス名に数字があるスタックトレース - なぜですか?
public interface OperationFinalizerHook {
void onOperationFinalize(Operation operation, Object context);
}
private final List<OperationFinalizerHook> operationFinalizeHooks = new ArrayList<>();
...
public void finalizeOperation(Object context) {
final Operation operation = getOperation();
operationFinalizeHooks.forEach(hook -> hook.onOperationFinalize(operation, context));
}
コールツリー/スタックトレースが構築され、次の
11 at com.company.SomeClass.lambda$finalizeOperation$0 (SomeClass.java:51)
12 at com.company.SomeClass$$Lambda$135/2085968933.accept (Unknown source)
13 at java.util.ArrayList.forEach (ArrayList.java:1249)
14 at com.company.SomeClass.finalizeOperation (SomeClass.java:51)
私は12行に興味 - この名前が来ませんから?なぜ私はクラスの名前を期待する乱数がありますか?
編集: はここblog post mentioned byニクラスPからのコードです:
public class Test {
public static void main(String... args) {
List<String> names = Arrays.asList("adam", "");
Stream lengths = names.stream().map(name -> check(name));
lengths.count();
}
public static int check(String s) {
if (s.equals(""))
throw new IllegalArgumentException();
return s.length();
}
}
しかし、結果は、この数値の名前が含まれていない、スタックトレースは、(jdk8u102)です:jdk8u25数に
Exception in thread "main" java.lang.IllegalArgumentException
at Test.check(Test.java:19)
at Test.lambda$main$0(Test.java:12)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at Test.main(Test.java:14)
そこにいます:
Exception in thread "main" java.lang.IllegalArgumentException
at Test.check(Test.java:18)
at Test.lambda$main$0(Test.java:11)
at Test$$Lambda$1/1554547125.apply(Unknown Source)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.LongPipeline.reduce(LongPipeline.java:438)
at java.util.stream.LongPipeline.sum(LongPipeline.java:396)
at java.util.stream.ReferencePipeline.count(ReferencePipeline.java:526)
at Test.main(Test.java:13)
リンクは、特定の内部クラスに?この番号は実際何を表していますか? –
実際にはありません - 私はここで何かを見つけました:(http://www.retrologic.com/innerclasses.doc7.html) –
クイックスキャンから、その番号を生成するものに何も表示されませんでした手元に)。あなたの投稿は本当にその質問に答えるべきです。 –