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