2012-07-09 109 views
18

我儘可能地避免使用非最終變量,如果Eclipse爲我自動執行此操作(這樣我就不會忘記這麼做),它可以節省一些輸入。我希望它能夠檢測何時添加新的變量賦值/聲明語句,並且一旦我完成它,插入修改器final有沒有辦法讓Eclipse自動使我所有的變量都最終?

是否有配置選項或輕量級插件可以實現這一目標?

回答

37

您可以將其添加爲'保存操作',以便每當您保存文件時,Eclipse都會將final添加到您的變量中。這就是:

  • 轉到窗口>首選項>的Java>編輯>保存操作
  • 其他操作並按配置
  • 代碼樣式選項卡上有一個部分變量聲明,你可以打勾使用修飾符 '最終'在可能的地方。您可以在私有字段,參數和局部變量之間進行選擇。

也可以手動做同樣的事情(每一次同時或現有的代碼庫)通過清理

+0

當他們意識到catch-declarations和for-vars **不是**和局部var聲明相同的時候,我會自己啓用這個選項:)現在,我仍然需要手工完成。 – 2012-07-09 16:02:02

+0

@MarkoTopolnik對於foreach vars(例如'for(final Object x:...){...}')沒有太多問題,但是迭代變量for(int i = 0; ...; i ++){...}', d是一個問題。你是否經常有機會分配接受聲明?我沒有看到'try {} catch(final Exception e){...}'...... catch的問題...... – 2014-04-04 15:09:38

+4

@JoshuaTaylor似乎你錯過了我的觀點......問題在於讓所有那些最終的關鍵字添加了噪音你的代碼。我更喜歡的是最終成爲* default *和需要應用特殊關鍵字來獲得可變變量。 – 2014-04-04 16:35:09

4

您可以使用右鍵單擊 - >源代碼 - >清理。 您應該首先在代碼格式化程序的首選項中定義您真正想要清理的內容。

+0

「只要你完成它就不添加它」,但你可以在最終修改器輸入時不關心它,並在清理結束時添加它們。 – YMomb 2012-07-09 15:29:51

1

這可能不是最強大的解決方案,但對原語和/或你用了很多類型,你可以定義宏

int --> final int 
byte[] --> final byte[] 
List --> final List 

我真的很喜歡這個格式化的想法也一樣,但你必須接受所有其他它有一個格式化,這可能很麻煩。

2

Checkstyle插件可以爲你做到這一點。您必須先設置您的checkstyle配置,然後在您的項目中啓用checkstyle,並讓它在保存java文件時更改您的代碼。

相關問題