关于自动添加代码确实有很多种,alt+/也是一种。这里主要讲成员函数自动生成和自动抽取函数的方法。
1、 打开eclipse选择工程-源文件-包-双击进入一个的具体的java文件
2、在这个文件中按alt+shift+s看到一个自动生成代码菜单,选册唯择需要的方式:
3、我个人认为,实际编码时比较实用的是抽取动作,抽取后生成新的函数,代码结果不州旁培变,这是重构里面最常用启竖的方法。方法是先选择要抽取的代码部分,再按alt+shift+m
填写好方法名称,确定后:
Eclipse中提供了几个扩展点 方便扩展重构功能
基本的重构功能有
Rename Move Create Delete Copy 对应扩展点即为
re refactoring renameParticipantsre refactoring moveParticipantsre refactoring createParticipantsre refactoring deleteParticipantspyParticipants
以ReName为例 其余 项与ReName大同小异
实现这个扩展点的基本语法
<extension point= re refactoring renameParticipants ><renameParticipant id= intramart app producer refactoring renameTypeParticipant name= Ebuilder RenameTypeParticipant class= intramart app producer refactoring TypeRenameParticipant > <enablement> </enablement></renameParticipant></extension>
这里默认对响应所有改名事件 如果需要过滤可凯橡以在元素<enablement/>中加以定义 不赘述 实现改名扩展的关键在实现类 必须是re refactoring participants RenameParticipant 的子类
下面代码进如世行了简渣孙肢单的Eclipse重构功能实现
import re resources IFileimport re resources ResourcesPluginimport re runtime CoreExceptionimport re runtime IProgressMonitorimport re runtime OperationCanceledExceptionimport re refactoring Changeimport re refactoring RefactoringStatusimport re refactoring TextFileChangeimport re refactoring participants CheckConditionsContextimport re refactoring participants RenameParticipantimport eclipse text edits ReplaceEdit
public class TypeRenameParticipant extends RenameParticipant {
public TypeRenameParticipant() { }
@Override public RefactoringStatus checkConditions(IProgressMonitor pm CheckConditionsContext context) throws OperationCanceledException { return new RefactoringStatus() }
@Override public Change createChange(IProgressMonitor pm) throws CoreException OperationCanceledException { IFile file = ResourcesPlugin getWorkspace() getRoot() getProject( a ) getFile( a ) TextFileChange textFileChange = new TextFileChange( File Changed file)
ReplaceEdit edit = new ReplaceEdit( haha ) textFileChange setEdit(edit) return textFileChange }
@Override public String getName() { return Ebuilder RenameTypeParticipant }
@Override protected boolean initialize(Object element) { // need sub return true }
}
CreateChange方法内实现过于粗糙 仅仅是为了可以让大家看到结果
Eclipse重构功能结果预览
通过利用扩展点 我们就自然的将重构时的差异比较 警告 preview 重构history redo/undo等 eclipse平台提供的基本功能加以利用了
Preview的结果如下图
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)