正则表达式在Eclipse中压缩默认方法实现

时间:2010-01-22 11:21:33

标签: java regex eclipse

我使用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语句)

可以手动检查每个替换并跳过我想要保留的替换(不需要完全自动化)

2 个答案:

答案 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,其中适配器是给定接口的虚拟实现,然后您可以覆盖所需的内容。即使使用非正式类,也能提供非常简洁的代码。