7

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());
   }
};
4

2 に答える 2

8

compareそれはあなたのメソッドと同じくらいスレッドセーフです。

Orderingのデフォルトの実装にはインスタンスデータがないため、重要なのは、compareメソッドをどのように定義するかだけです。

于 2010-08-26T16:43:27.657 に答える
5

はい。オブジェクトは、可変フィールドの拡張や追加、メソッドでの可変またはのでの可変の提供Orderingなど、オブジェクトを可変にするために何かを行わない限り、すべて不変です。OrderingComparatorfrom(Comparator)FunctiononResultOf(Function)

しかし、通常、スレッドセーフではないものを作成するには、実際に邪魔にならないようにする必要があります。

于 2010-08-26T16:50:51.080 に答える