我使用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语句)
可以手动检查每个替换并跳过我想要保留的替换(不需要完全自动化)
答案 0 :(得分:1)
我想出了类似的东西:
(public|private|protected)\s+(\w+)\s+(\w+)(\(.*\))\s+\{\s*(// TODO Auto-generated method stub)\s*(.*)\s*\}
$1 $2 $3$4 { $6 }
答案 1 :(得分:0)
了解如何使用适配器处理swing,其中适配器是给定接口的虚拟实现,然后您可以覆盖所需的内容。即使使用非正式类,也能提供非常简洁的代码。