eclipse巧用正则表达式替换
2016-04-27 14:13
519 查看
在工作中,经常碰到重构代码,有些事情明明很简单,但要改的东西太多了,重复工作量太大,所以学点技巧是灰常有用的
首先在Person.java中有这些静态常量,注意至少有40多个静态常量
Java代码
...
public static final String PREFERENCE_HIDE_HELP_BLOG = "PREFERENCE_HIDE_HELP_BLOG";// 29;
public static final String PREFERENCE_HIDE_HELP_DOCUMENT = "PREFERENCE_HIDE_HELP_DOCUMENT";// 30;
public static final String PREFERENCE_SEND_EMAIL_IN_PLAIN = "PREFERENCE_SEND_EMAIL_IN_PLAIN";// 31;
public static final String PREFERENCE_BROTHERS_ON_SITREPS = "PREFERENCE_BROTHERS_ON_SITREPS";// 32;
...
要把这些静态常量移到Perference.java里,然后问题就来了,在Person.java有大量地方调用了这些静态常量,如果一个一个去改的话,就只有
了,这时就用eclispe的正则替换吧
如图:
很简单的两句话,就成功替换所有要改的静态常量
下面来个复杂点的
要把这一类的方法转换一下(很多,有80多个)
Java代码
...
public void setSendEmailBirthday(boolean p) throws JawaCodeException { //Birthday Emails
setPreference(Preference.PREFERENCE_SEND_BIRTHDAY_EMAILS, p);
}
public void setSendAnnouncement(boolean p) throws JawaCodeException { //Announcement
setPreference(Preference.PREFERENCE_SEND_ANNOUNCEMENT, p);
}
...
变成这个样子
Java代码
public void setSendEmailBirthday(boolean p) throws JawaCodeException { //Birthday Emails
Keyword preferenceType = new Keyword(Keyword.PROPERTY_STRINGVAL, Preference.PREFERENCE_SEND_BIRTHDAY_EMAILS);
setPreference(preferenceType, p);
}
public void setSendAnnouncement(boolean p) throws JawaCodeException { //Announcement
Keyword preferenceType = new Keyword(Keyword.PROPERTY_STRINGVAL, Preference.PREFERENCE_SEND_ANNOUNCEMENT);
setPreference(preferenceType, p);
}
用下列正则表达式就行了:
现在是不是很方便了,不用正则表达式我想怎么也得半个多小时才能做完吧,还容易出错,用了正则表达式只用几分钟,我觉得很COOL
首先在Person.java中有这些静态常量,注意至少有40多个静态常量
Java代码
...
public static final String PREFERENCE_HIDE_HELP_BLOG = "PREFERENCE_HIDE_HELP_BLOG";// 29;
public static final String PREFERENCE_HIDE_HELP_DOCUMENT = "PREFERENCE_HIDE_HELP_DOCUMENT";// 30;
public static final String PREFERENCE_SEND_EMAIL_IN_PLAIN = "PREFERENCE_SEND_EMAIL_IN_PLAIN";// 31;
public static final String PREFERENCE_BROTHERS_ON_SITREPS = "PREFERENCE_BROTHERS_ON_SITREPS";// 32;
...
要把这些静态常量移到Perference.java里,然后问题就来了,在Person.java有大量地方调用了这些静态常量,如果一个一个去改的话,就只有
了,这时就用eclispe的正则替换吧
如图:
很简单的两句话,就成功替换所有要改的静态常量
下面来个复杂点的
要把这一类的方法转换一下(很多,有80多个)
Java代码
...
public void setSendEmailBirthday(boolean p) throws JawaCodeException { //Birthday Emails
setPreference(Preference.PREFERENCE_SEND_BIRTHDAY_EMAILS, p);
}
public void setSendAnnouncement(boolean p) throws JawaCodeException { //Announcement
setPreference(Preference.PREFERENCE_SEND_ANNOUNCEMENT, p);
}
...
变成这个样子
Java代码
public void setSendEmailBirthday(boolean p) throws JawaCodeException { //Birthday Emails
Keyword preferenceType = new Keyword(Keyword.PROPERTY_STRINGVAL, Preference.PREFERENCE_SEND_BIRTHDAY_EMAILS);
setPreference(preferenceType, p);
}
public void setSendAnnouncement(boolean p) throws JawaCodeException { //Announcement
Keyword preferenceType = new Keyword(Keyword.PROPERTY_STRINGVAL, Preference.PREFERENCE_SEND_ANNOUNCEMENT);
setPreference(preferenceType, p);
}
用下列正则表达式就行了:
现在是不是很方便了,不用正则表达式我想怎么也得半个多小时才能做完吧,还容易出错,用了正则表达式只用几分钟,我觉得很COOL
相关文章推荐
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- ASP中让Replace替换不区分大小写的方法
- ReplaceSaveRemoteFile 替换、保存远程图片 的代码
- 批处理BAT替换与截取字符串的用法t1=%a:~3%是什么意思
- 批量文件查找替换功能的vbs脚本
- SQL SERVER使用REPLACE将某一列字段中的某个值替换为其他的值
- 傻瓜式用Eclipse连接MySQL数据库
- Shell脚本学习指南之查找与替换介绍
- 查找mysql字段中固定字符串并替换的几个方法
- 浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
- php如何实现只替换一次或N次
- php关键字仅替换一次的实现函数
- php 全文搜索和替换的实现代码
- Eclipse引入jquery报错如何解决
- jQuery对指定元素中指定字符串进行替换的方法
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- 图解Eclipse j2ee开发环境的搭建过程