|
这里,IDEA会提供几个选择:
- 搜索注释和字符传的值
- 搜索非Java文件
- 重命名给该类实例化的变量名
- 重命名继承子类的名称
这些选项可以保证你控制重命名中各种情况,你只需输入新的名称,接下来,IDEA会提示一些相关的设定,这样你就完成这个复杂的重命名操作,这个和我们前面的想法完全一样:相关的类名都发生相应的改变(层次关系)、非Java文件也进行了重构,这样一个重命名操作才是完美的,才是值得信赖的。在其他所有的IDE工具中,在处理重命名问题上,一般只会重命名类名、一些非Java文件的引用,而对类型变量名称、继承关系、相关依赖此类名的相关测试等都不加考虑,这样及时你执行Rename操作,你需要做更多的事情来去除代码重的坏问道。举一个例子来说吧,有一个类名为House,你觉得Home更适合,应该突出在人的方面考虑,在代码中有这样的一些声明语句 House myHouse=new House(); ,当你在执行House的重命名操作后,这样的语句变为: Home myHouse=new Home();,这时你是否觉得这样的语句太糟糕,变量名词不达意,这样的情形在其他工具中每天都在发生,虽然帮你完成了重命名功能,但是却引入了不良代码。然而这一切在IDEA并不会发生,IDEA会自动进行变量重命名,上述的语句自动会转换为 Home myHome=new Home();,这个才是你真正需要的。
总结:IDEA的重构采用了监听机制,你可以监听某一项重构操作,当这种操作发生时会触发相应的事件,这种机制可以让操作像链一样,让重构进行的更彻底。上个例子中,我们使用UnitTest插件,该插件就监听了重命名事件,当一个类的类名改变时,它的测试类的类名也应该跟着改变。如果你有关于重构的一些想法,希望做的更完美,监听一些基本重构操作的事件,然后自行处理一下,这会让你的代码开发更加高效。
|