亲爱的 stackoverflow 社区!
我必须重构大量的 java 类,并希望将其自动化。我想使用 Java JDT 并为此编写一个 eclipse 插件。
应解决以下“问题”:
方法不应在其定义中抛出通用异常。我正在考虑删除 Exception throws block 并让 eclipse 自动为我生成 throws 声明。这可能吗?我还没有找到任何这方面的资源。我已经能够获取所有相关方法作为 JDT 模型,但不知道如何删除 throws block 并调用 eclipse 的自动更正功能。
// So instead of public int foo() throws Exception { // do some SQL-stuff } // Should be public int foo() throws SQLException, NoResultException { // do some SQL-stuff }
protected 字段应重写为私有(private),并应提供 protected 访问器。我认为这是可以 self 解释的,但如何编辑项目外部的所有引用来访问 getter? (没有 setter ,如果有,我可以手动编辑它们)。
预先感谢您,并对我的英语感到抱歉。
最佳答案
如果您不知道如何开始,这里有一个关于如何在 JDT 中使用 AST 和 Java 模型的很好的教程: http://www.vogella.com/tutorials/EclipseJDT/article.html
如果您分几个步骤进行重构,您可以首先使用您自己的插件删除所有带有通用异常的抛出声明,从而留下带有编译错误的触摸源。然后,您可以在 IDE 中手动启动快速修复。如果您有大量更改,我不会推荐这种方法。
很难找到 API 本身的良好入口点,因为您可能希望在一个“事务”中完成所有代码更改。我过去尝试过类似的东西,并且总是自己编写相关部分的代码,尽管阅读 Eclipse 代码确实有很大帮助!一个好的开始方法是使用“Plugin Spy”来查找相关的类。 (在 Mac 上为 Shift+Alt+F1 或 Shift+Option+F1)。它显示当前所选内容的信息。
要自己创建 throws block ,您可以使用 AST 中的访问者模式检查代码并收集所有抛出的异常(如果它们未包含在合适的 catch block 中)。
第二个要求可以直接使用 AST 实现。您可以查看 eclipse 的“封装字段”重构来了解如何执行此操作(或者如果可能的话使用此功能)。
关于java - 大规模 Eclipse AST Java 重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24890814/