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

Sou*_*ink 7 java static thread-safety guava

番石榴库有一个类排序.我想知道它是否是线程安全的.

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

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

Ale*_*yak 8

它与您的compare方法一样是线程安全的.

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


Col*_*inD 5

是的,Ordering对象都是不可变的,除非你做了一些让它们变得可变的东西,比如扩展Ordering和添加可变字段,或者Comparatorfrom(Comparator)方法中提供一个mutable 或者是一个可变FunctiononResultOf(Function).

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