为了账号安全,请及时绑定邮箱和手机立即绑定

容易出错的问题可以自动应用建议的修复吗?

容易出错的问题可以自动应用建议的修复吗?

人到中年有点甜 2023-05-10 16:25:39
从我读到的关于 Error Prone 的内容来看,我发现它实际上会建议修复代码中的样式错误。即来自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我没有看到的是,是否有办法自动应用这些建议的更改。我从命令行运行时容易出错。任何帮助表示赞赏!如果我能澄清任何事情,请告诉我。
查看完整描述

2 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

没有办法直接自动应用它们。

但是,您可以让 Error Prone 吐出包含修复的补丁文件。参考补丁文档:

要对 Error Prone 编译器内置的检查应用建议的修复,您将向编译器调用添加两个编译器标志:

-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

(请注意关于这是实验性的免责声明)


查看完整回答
反对 回复 2023-05-10
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

虽然当前没有记录,但可以直接将建议的更改应用于受影响的源代码。一个通过传递来做到这一点-XepPatchLocation:IN_PLACE

修改原始示例,调用变为:

-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:IN_PLACE

强烈建议仅当原始文件由版本控制系统管理时才使用此功能。然后可以使用 eg 轻松检查结果git diff并使用 eg 恢复结果git checkout -- .


查看完整回答
反对 回复 2023-05-10
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信