有没有办法让Eclipse自动使我所有的变量都最终?

问题描述:

我尽可能地避免使用非最终变量,如果Eclipse为我自动执行此操作(这样我就不会忘记这么做),它可以节省一些输入。我希望它能够检测何时添加新的变量赋值/声明语句,并且一旦我完成它,插入修改器final有没有办法让Eclipse自动使我所有的变量都最终?

是否有配置选项或轻量级插件可以实现这一目标?

您可以将其添加为'保存操作',以便每当您保存文件时,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

您可以使用右键单击 - >源代码 - >清理。 您应该首先在代码格式化程序的首选项中定义您真正想要清理的内容。

+0

“只要你完成它就不添加它”,但你可以在最终修改器输入时不关心它,并在清理结束时添加它们。 – YMomb 2012-07-09 15:29:51

这可能不是最强大的解决方案,但对原语和/或你用了很多类型,你可以定义宏

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

我真的很喜欢这个格式化的想法也一样,但你必须接受所有其他它有一个格式化,这可能很麻烦。

Checkstyle插件可以为你做到这一点。您必须先设置您的checkstyle配置,然后在您的项目中启用checkstyle,并让它在保存java文件时更改您的代码。