2017-02-16 37 views
1

在的IntelliJ,我有檢查可以做出final變量就可以開啓,這樣的IntelliJ將突出這些變量,讓我迅速用Alt鍵 + 輸入添加final關鍵字檢查的IntelliJ適用於整個整個文件檢查修復

當我打開別人的代碼誰不通常使用final關鍵詞,我想一個快速的方式來增加final到所有變量,可以是整個文件,甚至整個項目,如果可能的話。

是否有任何捷徑或其他方式在IntelliJ中輕鬆完成此操作?

+2

我認爲這可以提供幫助:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206886125-Applying-Suggested-to-the-whole-File – Mzf

回答

0

無答案;並支持我的意見,但最終,還支持多年的代碼質量主題思考經驗:

我知道,這是風格;但仍然,我認爲你的風格是沒有幫助的。與此相反的。所以答案是:不這樣做。不要把final不加區分地放在任何變量上。

重點是:您希望您的源代碼精確而詳細......但也是「極簡」的。請記住:每個和任何寫入的字符都需要閱讀。由讀者的大腦「解析」和「處理」。

所以你想平衡你寫下來的東西。而事情是:大多數的時間,那些final關鍵字將添加任何值到您的源代碼。零。

只有兩個地方final真的有差別:

  1. 類領域。那些應該是final作爲默認 - 因爲這會讓你中途不可變的對象;這本來就是一件非常好的事情。當然,有時你必須允許領域改變他們的價值;但正如所說:這應該是例外。
  2. 進入lambda表達式,匿名內部類的變量......換句話說:變量必須被保護以防止改變;以便在「不同」的環境下使用它們變得「安全」。但是猜測一下:用Java8,編譯器甚至學會了檢測有效的最終變量。所以即使沒有final關鍵字,你也可以在lambda中使用它們。所以即使是Java語言的父親也建議您避免使用該關鍵字!

但是,除了這兩種情況,在你的代碼中有無數的地方在final只有有助於你的大腦必須消化的輸入;沒有增加您的程序的價值。

長話短說:退一步,重新考慮你試圖用這項政策實現的目標。

最後:你確定你會記得撤銷你的更改別人的代碼?正如你所看到的:並非每個人都支持你的風格。所以你不僅要問如何輕鬆地更改其他代碼;還如何回覆那些後來改回來。假設您必須對該源代碼進行一些真正的修改;然後將它們提交到您的存儲庫 - 是否真的願意然後進入並撤消您手動進行的更改;同時確保所有其他「真實」的變化得以保留。

2

謝謝@Mzflink

從該職位:

您可以在當前文件使用典型Alt鍵 + 懸停在一個這樣的變量,可以進行final,按時輸入快捷方式實現這一目標,並選擇「修復所有」局部變量或參數可能是文件中的最終「問題」。

Screenshot of solution

下一個項目在該子菜單下的「上...運行檢查」,這將讓你修復應用到多個文件在您的項目。