StringBuffer和Double.ValueOf一起用导致的错误
StringBuffer虽然是同步的,然而如果不注意它的用法,则会出现一些问题。比如
StringBuffer stringBuffer=new StringBuffer("")
stringBuffer.append(1).append(2);
Double dd=Double.ValueOf(stringBuffer.toString);
这三句咋一看是没什么问题的,但是一放到循环中就容易出问题,没toString之前,stingBuffer的值是随时可能瞬时失败而无法获得的,所以,在用到StringBuffer的值前,最好先toString一下。不然,容易出问题。比如,上面的那三句在循环中基本上会出现
数值转换异常。应该改为:
StringBuffer stringBuffer=new StringBuffer("")
stringBuffer.append(1).append(2);
String strResult=stringBuffer.toString;
Double dd=Double.ValueOf(strResult);