首页 > 编程语言 >java.lang.NumberFormatException: multiple points报错

java.lang.NumberFormatException: multiple points报错

时间:2023-01-30 18:33:16浏览次数:56  
标签:lang java String SimpleDateFormat 报错 线程 多线程 public

记录一下今天出现的问题,前端页面点击本周或本月时,会报一个multiple points的错误,起初我以为是我后端接收与前端传的类型不符,后面查了一下才发现,是因为SimpleDateFormat在多线程环境下,是线程不安全的,所以我在多线程环境中public了SimpleDateFormat的实例,就因为定义了这个全局的SimpleDateFormat对象,才会出现这个问题。

 

给大家看段错误的实例代码

package com.cjxjy.ccs.prod.service.impl;


import java.text.SimpleDateFormat;
import java.util.*;


@Service
@Slf4j
public class ITbQualityOverviewServiceImpl implements ITbQualityOverviewService {
        
      Date date = new Date();

    SimpleDateFormat simpleDateFormat = new 
    SimpleDateFormat("yyyy-MM-dd HH:ss:mm");

    public static List<String> demo1(String stratDate,String endDate){
          // 示例代码1
   
}
    
    public Map<String, Object> demo2(String stratDate,String endDate){
           // 示例代码2
   
}    


}

这段代码我简化了,两个demo里如果都用到了这个SimpleDateFormat对象,那么就会报multiple points的错误,出现这种情况是在多线程的环境下

解决办法:

1、建议在每个方法中都new一个新的SimpleDateFormat对象,这样子就可以避免这种问题。

2、也可以使用保存线程局部变量的ThreadLocal对象来保存每一个线程的SimpleDateFormat对象,小编主要说说第二种的使用,针对上述代码做的改变。

注意:

  在多线程环境下,一定要注意共享变量的线程安全问题,如无特殊必要,建议不要随便定义静态公共变量,如果非要定义,建议考虑好多线程的问题!

标签:lang,java,String,SimpleDateFormat,报错,线程,多线程,public
From: https://www.cnblogs.com/yyk-/p/17076954.html

相关文章

  • 报错HTTP 405 Method Not Allowed, Allow: POST, OPTIONS, "detail": "方法 “GET” 不
    当测试注册功能是否实现时,出现了这种情况的405:HTTP405MethodNotAllowedAllow:POST,OPTIONSContent-Type:application/jsonVary:Accept{"detail":"方法“GET......
  • javaScript一个数组对象根据另一个数组排序
    varlist=[{name:'上海',code:'shanghai',},{name:'西安',code:'xian'},{name:'深圳',code:'shenzhen'},{name:'北京',code:'beijing'}];list......
  • JavaScript学习笔记—DOM之文本节点
    在DOM中,文本内容也是一个节点对象(Text),可以通过获取文本对象然后完成对它的各种操作,但这种做法会使得事情变得复杂,并不建议这么做。在大部分场景下,可以通过元素的属性来操作......
  • java 两个时间类型的参数相减,得到相差的天数
    如下代码演示当天时间减去一个时间参数获得两者之间相差的天数//获得Date类型的参数DatestartTime=entity.getCrateTime();DateendTime=newDate(System.currentT......
  • Java File IO
    一、File二、Java流分类三、文件的读写1.使用FileInputStream读文本文件2.使用FileOutputStream读写文本文件3.使用BufferedReader读写文本文件4.......
  • java hutool 导出excel 合并单元格
    packagepdf;importlombok.Data;importjava.math.BigDecimal;@DatapublicclassVerifyPlatform{ privatestaticfinallongserialVersionUID=1L; /**......
  • Java线程
    从jdk1.0引入的Thread类和Runable接口,以及到后来的jdk1.5版本引入的Callable接口一:多线程原理进程就是操作系统对一个应用程序分配资源(比如:CPU,内存,磁盘、GPU,上下文环......
  • Java06
    一、方法1.方法是语句的集合,包含于类或对象中,在程序中被创建,在其他地方被引用。2.设计方法的原则:一个方法只完成一个功能,这样有利于我们后期的扩展。3.......
  • Java接口的static方法和default方法
    一、static方法接口中的static方法与类中的static方法很像,都是直接调用:interface名.static方法,静态方法必须写函数体,否则会报错创建接口,定义静态方法:publicinterfaces......
  • apple- 提交审核版本时报错:您的 App 包含 NSUserTrackingUsageDescription
    https://blog.csdn.net/gyueh/article/details/120453685https://uniapp.dcloud.net.cn/tutorial/app-ios-idfa.html#......