guava-libraries - Ordering类线程安全吗?

时间:2010-08-26 16:32:27

标签: java static thread-safety guava

guava-libraries有一个班级Ordering。我想知道它是否是线程安全的。

例如,它可以用作静态变量吗?

public static Ordering<String> BY_LENGTH_ORDERING = new Ordering<String>() {
   public int compare(String left, String right) {
      return Ints.compare(left.length(), right.length());
   }
};

2 个答案:

答案 0 :(得分:8)

它与compare方法一样具有线程安全性。

Ordering的默认实现没有任何实例数据,因此唯一重要的是如何定义比较方法。

答案 1 :(得分:5)

是的,Ordering对象都是不可变的,除非你做了一些让它们变得可变的东西,例如扩展Ordering并添加可变字段,或者在{{1}中提供可变Comparator方法或from(Comparator)中的可变Function

但通常情况下,你真的不得不自己做一个非线程安全的方法。