为什么 jshell return 使用 StackWalker 清空字符串
why does jshell return empty String using StackWalker
这是一个错误吗?我至少会期待一个异常而不是空字符串:
jshell> ((Supplier<String>)(()->StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass().getName())).get()+"invisible";
==> ""
使用 jshell 13.0.1
我没有解释,但这似乎是由于 shell 反馈的一些奇怪行为。
jshell> String a = ((Supplier<String>)(() -> StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass().getName())).get();
a ==> ""
jshell> System.out.println(a);
REPL.$JShell
jshell> "$JShell$foobar"
==> ""
JShell 似乎以某种方式解释字符串 $Jshell$...,但字符串本身很好。
这是一个错误吗?我至少会期待一个异常而不是空字符串:
jshell> ((Supplier<String>)(()->StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass().getName())).get()+"invisible";
==> ""
使用 jshell 13.0.1
我没有解释,但这似乎是由于 shell 反馈的一些奇怪行为。
jshell> String a = ((Supplier<String>)(() -> StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).getCallerClass().getName())).get();
a ==> ""
jshell> System.out.println(a);
REPL.$JShell
jshell> "$JShell$foobar"
==> ""
JShell 似乎以某种方式解释字符串 $Jshell$...,但字符串本身很好。