2013-12-13 31 views
25

我目前正在研究幾乎沒有編碼約定或慣例編寫的遺留java代碼。我經常遇到工作但非常糟糕的代碼片段(變量名稱中的拼寫錯誤,冗餘和許多其他錯誤),我發現自己正在努力修復。在其中一個例子中,我發現了一個包含三個名稱不同但方法體幾乎相同的方法的類。快速比較IntelliJ中方法的方法

根據我最初的觀察,唯一的區別是其中一個參數的名稱。

在採取任何措施併合並它們之前,我想對三種方法進行比較,看看是否有任何細微差別,我沒有注意到。

我知道有可能比較兩個文件,與VCS的版本進行比較等,但我無法找到一種快速方法來比較同一文件中的方法定義。

是否有更實用的方法來比較IntelliJ中同一文件的不同部分,而不是將它們複製到不同的文件中並運行文件比較?

感謝,

+0

任何差異工具都應該幫助你做到這一點,哪一個挑選的主要是主觀主題,並且在StackOverflow上可能有很多關於此主題的問題。 –

+0

看到這個http://stackoverflow.com/questions/434766/how-can-i-diff-two-sections-of-the-same-file –

回答

8

的IntelliJ具有在分析查找重複。它具有高度的可配置性和語言意識,它不僅僅是尋找相同的文本塊。它將能夠檢測兩個代碼塊是否相同,但是例如具有不同的變量名稱。

你甚至可以擴大範圍,以便它檢測到在不同文件中的代碼重複。

有關更多信息,請參見此help頁面。

+4

值得注意的是,這是隻在付費「終極版」中可用開源的「社區版」。 (並不是說它太貴了 - 這是一個很棒的工具 - 它只是花了我一段時間才弄清楚爲什麼我錯過了它......) –

56

另一種快速的方法來比較內的IntelliJ方法(或任何代碼塊):

  1. 複製一個版本到剪貼板。
  2. 突出顯示其他版本。
  3. 使用編輯器中的上下文菜單中的「與剪貼板比較」功能或者從查看>與剪貼板比較。
+1

完美...非常有用!謝謝! – Daren

+3

這應該被接受的答案。 – InamTaj