Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
番石榴库有一个类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()); } };
它与您的方法一样是线程安全的compare。
compare
Ordering 的默认实现没有任何实例数据,所以唯一重要的是如何定义比较方法。
是的,Ordering对象都是不可变的,除非你做一些事情使它们可变,例如扩展Ordering和添加可变字段,或者Comparator在from(Comparator)方法中提供可变的或Function在onResultOf(Function).
Ordering
Comparator
from(Comparator)
Function
onResultOf(Function)
但通常情况下,你真的必须不遗余力地制作一个不是线程安全的。