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());
}
};
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With