从我对易错的了解中,我发现它实际上会建议您修复代码中的样式错误。即来自https://errorprone.info/docs/installation:
ERROR: example/myproject/BUILD:29:1: Java compilation in rule '//example/myproject:hello'
examples/maven/error_prone_should_flag/src/main/java/Main.java:20: error: [DeadException] Exception created but not thrown
new Exception();
^
(see http://errorprone.info/bugpattern/DeadException)
Did you mean 'throw new Exception();'?
1 error
我看不到的是,是否有一种方法可以自动应用这些建议的更改。我从命令行运行容易出错的代码。任何和所有帮助表示赞赏!让我知道是否可以澄清任何事情。
答案 0 :(得分:4)
没有一种直接直接自动应用它们的方法。
但是,您可能会容易出错,吐出包含这些修补程序的补丁文件。请参阅patching documentation:
要将建议的修补程序应用于易错编译器中内置的检查,请在编译器调用中添加两个编译器标志:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException -XepPatchLocation:/full/path/to/your/source/root
...
您可以直接检查补丁文件,并使用以下命令将其应用于您的来源:
cd /full/path/to/your/source/root patch -p0 -u -i error-prone.patch
(请注意,这是实验性的免责声明)
答案 1 :(得分:0)
虽然不是当前的documented,但可以 直接将建议的更改应用于受影响的源代码。一个通过传递-XepPatchLocation:IN_PLACE
来做到这一点:
修改原始示例,调用将变为:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:IN_PLACE
强烈建议仅在原始文件由版本控制系统管理时才使用此功能。然后可以使用例如git diff
并使用例如git checkout -- .
。