首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中使用import语句自动删除显式的包声明

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

Stack Overflow用户
提问于 2010-01-27 04:50:50
回答 8查看 5.5K关注 0票数 19

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

提前谢谢你。

编辑:

我想举个例子会有所帮助。我想把进口放在最上面,我不关心有多少进口。

代码语言:javascript
复制
javax.swing.JButton button1 = new javax.swing.JButton();

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

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-01-27 05:03:13

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

  • 编写脚本或执行搜索,用正则表达式替换,以消除显式类型的包前缀。
  • 然后让eclipse使用“组织导入”来完成剩下的工作。Ctrl-1

提示:为了避免歧义,设置类路径的库不超过所需的库。大约800节课,我在2个小时内完成了。

  • 或找一个应得的人来做这项工作。

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

票数 8
EN

Stack Overflow用户

发布于 2010-01-27 05:32:08

对于单一类型,eclipse提供了'Add import‘操作(Shift+Ctrl+M)。它做的正是你想要的--有一个很大很大的限制:你必须把光标放在一个类型上,它只会影响那个“选中”的事件。

但是也许这个操作可以在脚本/全局方法中使用。JDT插件可以遍历AST,并在找到的每个类型上调用此操作。

票数 5
EN

Stack Overflow用户

发布于 2010-01-27 04:56:30

This thread说:

选择包资源管理器视图,右键单击您的项目,选择源代码,然后组织导入。跳过你的叔叔-所有不需要的导入都会被删除

要使其更好地格式化:

Right click project > Source > Organize imports

现在,剩下的就是找到一种从代码中剥离完全限定名称的方法。你可能会想到一些正则表达式。看看this library --它看起来很有帮助。This article也应该是有用的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2142537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档