7

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

public class Person {  
  ...  
}

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

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

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

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

任何帮助深表感谢。

4

2 回答 2

1

无法通过重构来更改方法中由新值“User”定义的字符串“Person”。

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

在此处输入图像描述

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

于 2013-04-30T15:48:51.327 回答
1

更好的建议:

1)使用休眠。然后,您将使用 Criteria API,不需要多余地指定“Person”,并且可以以模块化方式附加其他限制/标准——这对于列表/搜索页面很有用。

2) 调用您的 API getByName()。List people = personDao.getPersonByName("...") 已经有点重复重复了。

整个事情看起来有点像我在以前的项目中看到的执行 DAO、数据库访问或持久性的“错误方式”。冗长但不灵活和低效用标准的结合,让我想起了 90 年代中期手工编写的持久性或服务做得不好。

于 2013-05-02T09:10:57.803 回答