VSCode 的 Java 扩展在捕获大多数警告方面做得非常出色,但最近我在我的项目中遇到了几个警告,即 VSCode 没有报告,但我通过使用
-Xlint
标志进行编译发现了这些警告。
以本次SSCCE为例:
public class Test
{
public static void main(String[] args)
{
int x = 3;
int y = (int)x;
System.out.println(y);
}
}
这段代码在 VSCode 中运行得很好,没有警告,但是如果你用
javac -Xlint Test.java
编译它,你会得到这个:
Test.java:6: warning: [cast] redundant cast to int
int y = (int)x;
^
1 warning
我想要的是在 VSCode 中报告这些警告的某种方式,就像其他警告一样(它们用黄色波浪线突出显示,您可以将鼠标悬停在上面)。我试过,但没有成功,看看是否有办法改变默认的 javac 编译器参数,但没有找到配置选项(如果存在)。
上面的警告只是 VSCode 似乎没有报告的一个例子。我还通过使用
-Xlint
标志发现了其他警告,例如应该标记为 transient 而不是的字段。
安装Code Runner扩展,然后你有两种修改命令的方式
在设置面板上搜索
code-runner.executorMap
,点击Edit in settings.json
在开头修改settings.json
"java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
为
"java": "cd $dir && javac -Xlint $fileName && java $fileNameWithoutExt",
右键单击
Run Code (Ctrl+Alt+N)
,或右上三角按钮选择Run Code
在settings.json中添加如下配置
"code-runner.customCommand": "cd $dir && javac -Xlint $fileName && java $fileNameWithoutExt",
使用以下方法执行脚本
Ctrl+Shift+P -->
Run Custom Command (Ctrl+Alt+K)
您可以添加以下设置以在TERMINAL而不是OUTPUT面板中进行Code Runner
输出 "code-runner.runInTerminal": true,
一般情况下,我们还是建议您使用Java扩展包以获得更多的功能和更好的体验。