java - Guava 条纹创作

标签 java guava

为什么选择 Google Guava Striped类不包含作为参数 Supplier<Lock> 的工厂方法( Supplier<Semaphore> , Supplier<ReadWriteLock> ) 实例?

例如,我想使用 CycleDetectingLockFactory 来创建锁,但我不能:

final CycleDetectingLockFactory lockFactory = CycleDetectingLockFactory.newInstance( CycleDetectingLockFactory.Policies.THROW );    
//...
Striped<Lock> cycleDetectingLocks = Striped.lazyWeakLock( 64, new Supplier<Lock>()
{
        public Lock get()
        {
            return lockFactory.newReentrantLock( "" );
        }
    }; );

最佳答案

它目前有一个带有该签名的私有(private)构造函数。也许他们会在未来的版本中将其公开(或提供工厂方法)。我想不出不这样做的理由。同时,您可能可以通过创建 Stripped 子类并直接实例化它来实现相同的目标。看起来每个现有的具体 Striped 实现都只有大约 20 行。 (大部分逻辑都在基类中)

关于java - Guava 条纹创作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18592129/

相关文章:

java - JAVA 中的 GAE DataStore 查询过滤器与 Query.FilterOperator.EQUAL 无法与数值进行比较

java - 使用 Guava 的基础知识

java - ListenableFuture 链可以处理内部 ExecutionException 吗?

java - nio上下文中的请求-响应同步/匹配

java - PostgreSQL JDBC - 可以删除但不能重新创建索引

java - OneNote 对 Apache Tika 解析器的支持

java - 是否可以对枚举进行子类化以强制编译器仅接受某些枚举值?

java - Google Guava 和一个我无法弄清楚的错误

java - Guava - Lists.transform(..., ...) 和 FluentIterable.from(...).transform(...) 之间的区别

java - 我是否应该使用一种修改后的单例设计模式,只允许对其实例进行一次引用?