如何扩展Eclipse的重命名重构,以在完成后触发另一个重构

时间:2012-11-13 13:23:41

标签: java eclipse refactoring rename ltk

我正在尝试扩展eclipse的重命名重构以调用另一个重命名重构。

public class Person {  
  ...  
}

public class PersonDAO {  
   public List<Person> getPersonByName(String name) {  
     ...  
   }  
}  

将Person类重命名为User后,我希望将getPersonByName等方法重命名为getUserByName

我已经扩展了RenameParticipant,并试图通过使用JDT重命名重构和ASTRewrite来实现。

问题是我创建的更改与原始重命名重构更改冲突 我无法使用postCreateChange(似乎基本处理器只返回null)现在我被卡住了。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

不可能通过重构将新值“User”更改为方法中定义的字符串“Person”。

但您可以使用 Ctrl + H 在整个工作空间中搜索所需的字符串,并将其替换为新的值。

enter image description here

当您单击“替换”按钮时,Eclipse将询问您将替换serched String的新值。

答案 1 :(得分:1)

更好的建议:

1)使用Hibernate。您将使用Criteria API,不需要冗余地指定“Person”,并且可以以模块化方式附加其他限制/标准 - 适用于List / Search页面。

2)调用你的API getByName()。列表人= personDao.getPersonByName(“...”)已经过多次重复重复。

整个事情看起来有点像执行DAO,数据库访问或持久性的“错误方式”,这在我之前的项目中已经看到过。过于冗长但又不灵活的组合低效用标准,让我想起了90年代中期人工编写的持久性或服务。