7

番石榴库有一个类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());
   }
};
4

2 回答 2

8

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

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

于 2010-08-26T16:43:27.657 回答
5

是的,Ordering对象都是不可变的,除非你做一些事情使它们可变,例如扩展Ordering和添加可变字段,或者Comparatorfrom(Comparator)方法中提供可变的或FunctiononResultOf(Function).

但通常情况下,你真的必须不遗余力地制作一个不是线程安全的。

于 2010-08-26T16:50:51.080 回答