1. 程式人生 > >java.lang.NumberFormatException: multiple points已解決

java.lang.NumberFormatException: multiple points已解決

問題:

多執行緒方法中使用了共享變數SimpleDateFormat,報如下錯誤:

 java.lang.NumberFormatException: multiple points
 at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1084

原因:

SimpleDateFormat是執行緒不安全的,切忌切忌!

解決:

線上程方法中,new SimpleDateFormat();

例:

SimpleDateFormat sdf = new SimpleDateFormat();

class QueryUserByNoThread extends  Thread{
  LoginOpr loginOpr;
  CountDownLatch  countdown ;
  Map<String, Object> map;//構造返回資訊
  Group group;
  String grpUId;
  SimpleDateFormat sdf;
  List<Cust> listCust;
  List<GroupMember> listMem;
  List<User> listUser;
  User user;
  Map<String, String> member = new HashMap<String, String>();
 
  
  /**
   * @param bo
   * @param loginOpr
   */
  public QueryUserByNoThread(LoginOpr loginOpr,CountDownLatch cdown,Map<String, String> member,Group group,String grpUId,List<Cust> listCust,List<GroupMember> listMem,List<User> listUser,User user,Map<String, Object> map) {
   super();
   this.member.putAll(member);
   this.countdown = cdown;
   this.map = map;
   this.group=group;
   this.grpUId = grpUId;
   this.sdf =  new SimpleDateFormat(Constants.DATE_MODEL_8);
   this.listMem = listMem;
   this.listUser = listUser;
   this.loginOpr = loginOpr;
   this.user=user;
   
   
  }