3

我有点不确定我是如何实现的,希望得到一些反馈。

我有一个类,Metric,它需要在返回它们之前将一些数字乘以给定的百分比。他们返回 BigDecimal,所以我创建了类变量 BigDecimal 来存储该百分比,然后在返回时将它们相乘。

public class Metric extends Model {
    private static final BigDecimal percentage = new BigDecimal("1.2");

    public BigDecimal getMetric() {
        return new BigDecimal(getValue()).multiply(percentage);
    }
}

静态 final 并立即用 new 声明它有什么问题吗?另外,我试图研究 BigDecimal 是否是线程安全的,但我找不到确定的答案。对此的反馈将不胜感激。

4

1 回答 1

7

BigDecimal是不可变的,因此是线程安全的。此外,这样的静态最终值也没有问题——事实上,这是推荐的。

于 2013-06-13T17:45:45.197 回答