eclipse自动补全功能的缺陷

  这周在做一些代码的重构,在重构的过程中,踩了一个eclipse的大坑!这里记录一下

  在eclipse里写java代码,你写好方法名字,再来个回车,eclipse会自动帮你把方法的参数给补全,补全的参数跟你在补全方法定义的参数名字“一致”,即我认为的效果是这样的

public void test01(Integer id,String name,Integer age){
    test02(id,name,age)
}
public void test02(Integer id,String name,Integer age){ 
}

  一般情况下,使用起来也是这种效果的。但是,eclipse的方法参数补全,是有缺陷的

public void test01(Integer id,String name,Integer age){
    Integer auctionId = 1001;
    test02(auctionId, name, age);

    Integer countNumber = 1001;
    test02(auctionId, name, age);

    int userId = 1;
    test02(auctionId, name, age);
}

public void test02(Integer id,String name,Integer age){

}

  这test01方法,第三行,我调test02,理想中情况,是应该给我补全参数是 id和name、age,实际呢,给我补全的是auctionId!

  然后我又试了其他的情况,发现,eclipse的补全规则,是模糊参数匹配,如果有多个参数符合条件,则就近定义原则,在调用方法距离最近的并且参数类型匹配的,权值最高!

  想不通,为什么eclipse不是参数名精确匹配呢?就这个不起眼的问题,给我造成了好几个bug,还不好排查,只能肉眼去一个一个扫雷。我又试了idea,但是,idea是直接没补全参数的这个功能。。。

posted @ 2018-07-08 13:53  Bug开发攻城狮  阅读(679)  评论(0编辑  收藏  举报