日期:2014-05-19  浏览次数:20706 次

findbug问题,在线等
写了一个方法如:
Java code

    /* 
     * copyString
     * 拷贝一段字符串到新的字符串中,这个方法会new一个新的指针
     */
    public static String copyString(String src, int start, int len)
    {
        if(src == null)
        {
            return null;
        }
        
        StringBuffer sb = new StringBuffer();

        for(int i = start; i < len; i++)
        {
            // 对src进行处理
        }

        return sb.toString();
    }



findbugs插件检出高报警BUG。

Type Abbreviation Type Category 
IL IL_INFINITE_LOOP:An apparent infinite loop  
This loop doesn't seem to have a way to terminate (other than by perhaps throwing an exception).

这个BUG该怎么改啊?多谢!
 


------解决方案--------------------
代码貌似没有问题,注释有问题,java里好像没指针吧?呵呵~

findbugs插件没有用过,findbugs插件也可以有bug的
------解决方案--------------------
我咋就没有警告呢
------解决方案--------------------
么遇到过这样的情况
------解决方案--------------------
要是觉得firBug有任何的报警就需要处理的话.那可就麻烦了.
在使用fireBug时需要区分报警是程序代码的,还是firBug自身的代码报出的警,
如果是firbug报的且没有影响自身的程序的,大可不必管.
但如果报出的警是程序的话.你可要好好处理喽.

这是我使用fiebug的经验吧.希望有用.
不要把firebug报出的任何警告都看成是程序的问题

------解决方案--------------------
探讨

要是觉得firBug有任何的报警就需要处理的话.那可就麻烦了.
在使用fireBug时需要区分报警是程序代码的,还是firBug自身的代码报出的警,
如果是firbug报的且没有影响自身的程序的,大可不必管.
但如果报出的警是程序的话.你可要好好处理喽.

这是我使用fiebug的经验吧.希望有用.
不要把firebug报出的任何警告都看成是程序的问题

------解决方案--------------------


这个warning是说您的那个for循环语句可能是个死循环
所以您可以从for循环语句里面的程序来检查。(是不是循环内 i被减小,或者len被增加)
------解决方案--------------------
没检验 start 和 len