我使用Eclipse Galileo开发Java代码。在实现用于模拟的接口时,我通常只想指定几种方法的行为,并保留大多数的默认行为(不执行任何操作或返回null / 0)。 Eclipse将产生一个格式良好的默认实现,例如:
HttpServletRequest mock = new HttpServletRequest() {
public String getQueryString() {
return "foobar";
}
public void setAttribute(String arg0, Object arg1) {
// TODO Auto-generated method stub
}
public int getServerPort() {
// TODO Auto-generated method stub
return 0;
}
public String getServerName() {
// TODO Auto-generated method stub
return null;
}
... etc, etc, etc ...
出于合法性和清洁性的考虑,我正在寻找一个正则表达式(用于Eclipse的“查找/替换”对话框)进行清理,当在上述代码上运行时,它将产生以下结果:
HttpServletRequest mock = new HttpServletRequest() {
public String getQueryString() {
return "foobar";
}
public void setAttribute(String arg0, Object arg1) {}
public int getServerPort() {return 0;}
public String getServerName() {return null;}
... etc...
基本上:
删除{和}之间的所有字符/换行符/制表符
但保留并重写“ return(。*);”;如果有这样的事情(void方法没有return语句)
可以手动检查每个替换项并跳过我要保留的替换项(不需要完全自动化)
最佳答案
我想出了类似的东西:
查找模式:(public|private|protected)\s+(\w+)\s+(\w+)(\(.*\))\s+\{\s*(// TODO Auto-generated method stub)\s*(.*)\s*\}
替换模式:$1 $2 $3$4 { $6 }