從我讀到的關(guān)于 Error Prone 的內(nèi)容來看,我發(fā)現(xiàn)它實際上會建議修復(fù)代碼中的樣式錯誤。即來自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我沒有看到的是,是否有辦法自動應(yīng)用這些建議的更改。我從命令行運行時容易出錯。任何幫助表示贊賞!如果我能澄清任何事情,請告訴我。
2 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
沒有辦法直接自動應(yīng)用它們。
但是,您可以讓 Error Prone 吐出包含修復(fù)的補丁文件。參考補丁文檔:
要對 Error Prone 編譯器內(nèi)置的檢查應(yīng)用建議的修復(fù),您將向編譯器調(diào)用添加兩個編譯器標志:
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException -XepPatchLocation:/full/path/to/your/source/root...
您可以直接檢查補丁文件,并將其應(yīng)用到您的源代碼中:
cd?/full/path/to/your/source/root patch?-p0?-u?-i?error-prone.patch
(請注意關(guān)于這是實驗性的免責聲明)

慕雪6442864
TA貢獻1812條經(jīng)驗 獲得超5個贊
雖然當前沒有記錄,但可以直接將建議的更改應(yīng)用于受影響的源代碼。一個通過傳遞來做到這一點-XepPatchLocation:IN_PLACE
:
修改原始示例,調(diào)用變?yōu)椋?/p>
-XepPatchChecks:MissingOverride,DefaultCharset,DeadException -XepPatchLocation:IN_PLACE
強烈建議僅當原始文件由版本控制系統(tǒng)管理時才使用此功能。然后可以使用 eg 輕松檢查結(jié)果git diff
并使用 eg 恢復(fù)結(jié)果git checkout -- .
。
添加回答
舉報
0/150
提交
取消