gpt4 book ai didi

java - 如何从 StackFrameStream 中只获取前两个 stackFrames?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:39 25 4
gpt4 key购买 nike

我通过在 StackFrameStream 上使用 walk 方法得到了一个 StackFrames 列表。但我只需要找到前 3 个 stackFrames。

我有 StackFrameStream

List<StackFrame> stackFrameList =
StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).walk(stackFrameStream -> stackFrameStream.collect(Collectors.toList()));

System.out.println("All frames : \n" + stackFrameList.toString());
for (StackFrame stackFrame : stackFrameList) {
System.out.println("stackFrame.getDeclaringClass()=>" + stackFrame.getDeclaringClass().toString());
System.out.println("stackFrame.getLineNumber=>" + stackFrame.getLineNumber());
System.out.println("stackFrame.getMethodName=>" + stackFrame.getMethodName());
System.out.println();
}

我不想使用 stackFrameStream.collect(Collectors.toList()) 并获取整个 stackFrames 列表,

我只想要前 3 个元素

最佳答案

使用limit截断:

 StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE)
.walk(stackFrameStream -> stackFrameStream.limit(3).collect(Collectors.toList()));

关于java - 如何从 StackFrameStream 中只获取前两个 stackFrames?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53965241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com