jshell中C选项有什么用

What is the use of C option in jshell

我已经查看了 introduction to jshell guide,但找不到 description/examples 关于 jshell 中的 -C 选项。

$jshell --help
 -C<flag>              Pass <flag> to the compiler.
                        Use one -C for each compiler flag or flag argument

将选项传递给 javac 编译器,jshell 将 运行 编译 REPL 中的语句。一个简单的示例(查看加载了哪些 类),jshell -C-verbose。另请参阅 Standard Options for javac and Extra Options for javac 了解您可能指定的其他选项。

您可以使用此选项来利用 javac command line arguments 例如考虑这段代码:

String str = (String)"Hello"

正常启动 jshell 并使用相同的方法会导致:


同时您可以启用编译器错误警告(-Werror)并在编译时使用 -Xlintcast 警告您使用的显式转换在上面的代码中使用 -

jshell -C-Xlint:cast -C-Werror

同样的语句会导致 Jshell 编译器发出警告和错误:-


虽然 IMO,但就使用 JShell -C 命令行选项时所有标志 shall/shall 未使用的内容而言,这肯定要少得多。