我正在编写一个Nexus 7应用程序并继承了一个骨架应用程序。来自其他开发者。我对它运行了一个findbugs分析,findbugs警告说SimpleDateFormat的静态实例:
正如JavaDoc所述,DateFormats对于多线程使用本质上是不安全的。检测器找到了一个通过静态字段获得的DateFormat实例的调用。这看起来很可疑。
我的应用中没有任何明确的线程创建或后台操作。因此,我是否需要考虑上述警告,还是可以忽略?我不确定在Android应用程序中实际运行的线程(除了UI服务线程)。
dateformat对象在构造函数中设置如下:
private static final SimpleDateFormat shortCsvDateFormat = new SimpleDateFormat(" EEE MMM d yyyy");
答案 0 :(得分:1)
对不起,'不是'迷路了。
这不应该是个问题。
但是,当然,这是一个可能但不太可能的错误来源。如果您查看SimpleDateFormat的文档,您会发现有两种方法可以应用新模式。
因此,一个线程可能会更改模式,而另一个线程则使用旧模式。但考虑到变量的名称,这看起来很不可能。 (我假设CSV模式在运行时没有改变。)
如果最终变量封装在CSVWriter类中,则可能性更小。