Reputation: 3931
The guava-libraries have a class Ordering. I'm wondering if it's thread safe.
For example, can it be used as a static variable?
public static Ordering<String> BY_LENGTH_ORDERING = new Ordering<String>() {
public int compare(String left, String right) {
return Ints.compare(left.length(), right.length());
}
};
Upvotes: 7
Views: 771
Reputation: 110084
Yes, Ordering
objects are all immutable unless you do something to make them mutable, such as extending Ordering
and adding mutable fields, or providing a mutable Comparator
in the from(Comparator)
method or a mutable Function
in onResultOf(Function)
.
But typically, you'd really have to go out of your way to make one that isn't thread safe.
Upvotes: 5
Reputation: 45596
It's as thread-safe as your compare
method.
Default implementation of Ordering does not have any instance data, so the only thing that matters is how you define your compare method.
Upvotes: 8