我喜欢 Eclipse 的快速修复。我经常使用“将参数分配给新字段”,但我非常想对其进行调整以不包含 final 关键字。(GWT RPC 不序列化最终字段,我现在正在做很多 GWT RPC。)
我无法找到控制此快速修复的设置。是否有我遗漏的设置,或者我是否需要深入研究插件开发文档并制作自己的“非最终字段”快速修复?
我正在使用 Eclipse 3.4
更新 - 将有关标记分辨率扩展点的答案标记为已接受,因为它看起来没有内置的配置选项。
我喜欢 Eclipse 的快速修复。我经常使用“将参数分配给新字段”,但我非常想对其进行调整以不包含 final 关键字。(GWT RPC 不序列化最终字段,我现在正在做很多 GWT RPC。)
我无法找到控制此快速修复的设置。是否有我遗漏的设置,或者我是否需要深入研究插件开发文档并制作自己的“非最终字段”快速修复?
我正在使用 Eclipse 3.4
更新 - 将有关标记分辨率扩展点的答案标记为已接受,因为它看起来没有内置的配置选项。
使用 Java 编辑器的 Eclipse 保存操作。
转到 Window --> Preferences --> Java --> Editor --> Save Actions 勾选“Perform the selected actions on save”勾选“Addition Actions” 添加以下操作“Add final modifier to private fields”
请参阅随附的屏幕截图。
一个不太简单的方法是扩展 org.eclipse.ui.ide.markerResolution 扩展点。
<extension point="org.eclipse.ui.ide.markerResolution">
<markerResolutionGenerator
markerType="org.eclipse.core.resources.problemmarker"
class="org.eclipse.escript.quickfix.QuickFixer"/>
</extension>
Eclipse Wiki中提供了更多信息
您可能还想查看“Poor Man's Quick Fix”(http://www.jave.de/eclipse/poormansquickfix/index.html)插件。我用过它一段时间,它可能允许你想要的调整。我不能保证它仍然有效......对不起。
好的,这很古怪,但是:
仅当您使用构造函数的参数工作时,Quickfix 才会使其成为最终版本;从一个普通函数的参数,它使它成为非最终的。因此,您可以将构造函数设为非构造函数(更改名称并为其指定返回类型),或者将所有参数传递给新函数并在函数上运行 quickfix。然后改回构造函数,或者内联函数。
就像我说的,胡说八道,但至少这很容易。
最近切换到 Eclipse 3.4,我遇到了“最终”成员问题。
Eclipse 3.4 中有一个新行为,如果私有成员不可修改(例如,没有声明 setter ...),它会将私有成员更改为 final(即使您在没有该关键字的情况下键入它)
应该可以关了吧...