jshell中C选项有什么用

Rah*_*rma 4 java java-9 jshell

我已经阅读了jshell 指南介绍,但在 jshell 中找不到关于 -C 选项的描述/示例。

$jshell --help
 -C<flag>              Pass <flag> to the compiler.
                        Use one -C for each compiler flag or flag argument
Run Code Online (Sandbox Code Playgroud)

Nam*_*man 5

您可以使用此选项来使用javac命令行参数,例如考虑这段代码:

String str = (String)"Hello"
Run Code Online (Sandbox Code Playgroud)

jshell正常启动并使用相同的将导致:

在此处输入图片说明


同时,您可以在 warning( -Werror)上启用编译器错误,并在编译时使用该-Xlintcast来警告您上述代码中使用的显式强制转换 -

jshell -C-Xlint:cast -C-Werror
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明


尽管 IMO,但在使用 JShell-C命令行选项时应/不应使用所有标志的记录肯定要少得多。