使用Java中的import语句自动删除显式包声明

Alb*_*oPL 19 java eclipse import refactoring packages

我有一个由其他人创建的项目,其中包含数千个类文件,并且对于任何类的每个引用都明确键入了包名称.看起来代码是逆向工程的.是否有一个很好的Java工具可以重构代码,以便从类引用中删除显式类型的包前缀并将其移动到import语句中.

先感谢您.

编辑:

我想一个例子会有所帮助.我想把进口放在最顶层,我不关心有多少进口.

javax.swing.JButton button1 = new javax.swing.JButton();
Run Code Online (Sandbox Code Playgroud)

想象一下上面的代码,但在成千上万的类文件中成千上万行代码中绝对无处不在.我希望能够删除所有的前缀,只是有一个很好的导入javax.swing.JButton; 在每个类文件的顶部.

sta*_*ker 8

我不知道这个用例的工具,但几个月前我不得不做类似的事情.

  • 编写脚本或使用正则表达式执行搜索替换以删除显式类型的包前缀.

  • 比使用"组织导入"让eclipse完成剩下的工作.按Ctrl-1

提示:为避免歧义,请使用不超过所需库的类路径设置类路径.对于大约800个课程,我在2小时内完成.

  • 或者让一个应该得到这份工作的人.

编辑:您应该知道在Prefeneces/Java/Editor/Save Actions中,可以将Organize导入配置为保存操作.


And*_*s_D 5

对于单一类型,eclipse提供"添加导入"操作(Shift + Ctrl + M).它完全符合您的要求 - 具有很大的限制:您必须将光标放在类型上,它只会影响该"选定"事件.

但也许这个动作可以用在脚本/全局方法中.JDT插件可以爬过AST并在它找到的每种类型上调用此操作.