guava 相关问题

用于Java和Android开发的Google核心Java库。

番石榴:图形的复制构造器

我正在寻找番石榴中图的复制构造函数。到目前为止,我已经尝试过:copy = GraphBuilder.from(g).build(); “ from(..)”仅复制图形的属性(有向/无向),而不是...

回答 1 投票 0

以Java实例化Google收藏夹的BiMap

您如何实例化Google收藏夹的Bimap?我已经阅读了Java问题:实例化Google Collection的HashBiMap我的代码示例com.google.common.collect.BiMap;公共...

回答 4 投票 15

如何在Java中合并两个不可变的集合?? [重复]

我正在使用番石榴的不可变集合。基本上,我有两个返回ImmutableSets的帮助器函数,这两个函数都包含作为内部类实例的数据,这些实例实现一个通用的...

回答 1 投票 0

如何实现总是返回非空值的排序多值树图

出于Struts的原因,我需要一个Sorted映射,该映射始终返回非null值。对于我的具体情况,我有以下实现,并且运行良好:公共类NonEmptyMap扩展TreeMap

回答 1 投票 0

newConcurrentHashSet()无法从IntelliJ的com.google.guava中解析?

我正在Macbook上的IntelliJ(社区2019.2)中编译Java。我的代码:import com.google.common.collect.Sets;公共静态无效main(String [] args){Sets.newConcurrentHashSet(); //错误!...

回答 1 投票 0

API中的返回Futures.immediateFuture(x)是否是反模式?

[我们不知道syncMethod中有什么,但是似乎选择该名称来表示“某些同步通信代码”,在这种情况下,您显示的代码示例显然是反模式。我怀疑它不是在guava文档中涵盖的,仅仅是因为他们从没想过有人会写它。这就好比告诉人们,如果它实际上总是返回null,或者不要将它声明为“ doX”(如果实际上是Y),则不要将其声明为返回对象。签名保证了行为,而返回Future则保证了您(至少有时),返回不完整的未来。 [如果您的方法有时会延迟工作,而有时却不会,那么在无延迟的路径上返回完整的将来是有意义的。以下是一些准则: 考虑调用方的异常处理:它可能期望某些类型的故障导致将来失败,并且可能无法正确处理直接引发异常的方法。 不要直接调用任何引发InterruptedException的代码。这肯定表明您正在打破呼叫者对您是否异步的期望。 IOException也是一个危险信号,因为它通常伴随调用者可能期望异步发生的缓慢的网络或磁盘调用。 不幸的是,对于[[how 没有将您的同步调用转换为异步调用的通用解决方案。理想情况下,您应该在后台使用异步库来进行网络调用,以免线程在服务器之间反弹字节时不会聚集灰尘。如果这不是一种选择,那么您将不得不增加一个线程池-只需关注正在创建的线程数即可。 我的2c 对我来说似乎是一种反模式。 [它留下了两个用于错误处理的代码路径,调用代码中的必需try {} catch {}以及ListenableFuture管道中的异常 它使syncMethod()的执行时间与调用者是否可以在同步中采用该方法有关。对于高吞吐量代码,即使是将日志语句写入磁盘或使用InetAddress api也是阻塞操作。 [它打破了期货的某种功能范式,例如参照透明性。 您的示例显示了重写的方法,在这里很重要。 通过使方法返回ListenableFuture,接口或超类 allows实现的作者将异步返回。同样,该方法的调用者知道可以容忍异步返回值。 作为回报,该实现承诺是非阻塞的。因为它返回ListenableFuture,所以它有机会将所有昂贵的工作转移到后台线程,使用异步网络调用或其他方法。 但是,它不必异步运行。 如果实现是非阻塞的并且可以快速完成,则绝对没有理由强迫执行线程切换只是为了满足对工作将完成的期望异步地。在这种情况下,immediateFuture()是符合接口的好方法。 所以,您的示例是反模式吗?这取决于syncMethod()的价格。如果速度很快(无阻塞,并且不进行冗长的计算),则该示例很好。如果速度很慢(也许它在网络上等待,或者分解了很大的数字),那么可以,它是一种反模式。

回答 3 投票 2

Futures.immediateFuture(x)是反模式吗?

我的2c 对我来说似乎是一种反模式。 [它留下了两个用于错误处理的代码路径,调用代码中的必需try {} catch {}以及ListenableFuture管道中的异常 它使syncMethod()的执行时间与调用者是否可以在同步中采用该方法有关。对于高吞吐量代码,即使是将日志语句写入磁盘或使用InetAddress api也是阻塞操作。 [它打破了期货的某种功能范式,例如参照透明性。

回答 1 投票 0

ListenableFuture.immediateFuture(x)是反模式吗?

我的2c 对我来说似乎是一种反模式。 [它留下了两个用于错误处理的代码路径,调用代码中的必需try {} catch {}以及ListenableFuture管道中的异常 它使syncMethod()的执行时间与调用者是否可以在同步中采用该方法有关。对于高吞吐量代码,即使是将日志语句写入磁盘或使用InetAddress api也是阻塞操作。 [它打破了期货的某种功能范式,例如参照透明性。

回答 1 投票 0

Google Guava getTopLevelClasses返回空集

我一直在互联网上搜索,但无济于事。我正在尝试使用番石榴来获取我的软件包中的所有类,但是它的行为不符合预期。它总是返回一个空的...

回答 1 投票 0

查找每个ListMultiMap键的总和

我找不到一种简单的方法来查找Java中的ListMultiMap中所有键的总和。我有一个ListMultiMap:ListMultimap foodCals = ArrayListMultimap.create();包含...

回答 1 投票 0

有关从jar文件加载资源文件的问题

我有一个具有这种源代码布局的应用程序:src main java com mypackage MyClass.java资源查询MyClass中的query.sql,我可以使用URL加载资源query.sql ...

回答 1 投票 0

使用最新的番石榴库实现CacheBuilder时出错(实现'com.google.guava:guava:28.2-jre)

最近,我已将guava库升级到28.2-jre(实现'com.google.guava:guava:28.2-jre),之后我无法使用CacheBuilder创建数据库缓存。以前它工作正常...

回答 1 投票 0

Guava Cache 。put(key,value)不向我的缓存添加值; put()方法不起作用

我有一个简单的缓存,用于通过IP存储Guava RateLimiter实例。请参见下面的代码块。 put()调用不会将任何内容放入缓存。存储...

回答 1 投票 0

为番石榴范围创建Gson TypeAdapter

我正在尝试使用Gson将Guava Range对象序列化为JSON,但是默认序列化失败,并且我不确定如何为该泛型类型正确实现TypeAdapter。 Gson gson = ...

回答 3 投票 1

Guava不可变集合的Java 8收集器?

我真的很喜欢Java 8流和Guava的不可变集合,但是我不知道如何将两者一起使用。例如,如何实现将流结果收集到...

回答 5 投票 21

Scala地图上的Guava Maps.difference

尝试执行以下操作,但是获得了替代方法的重载方法值差异:不能应用于java.util.Map [String,Any] import com.fasterxml.jackson.databind.ObjectMapper import ...

回答 1 投票 0

复制可选内容>>

是否有“不错”的方法来创建Optional对象的副本?例如,假设我有一个方法Optional doSomeStuff(Optional input){if(something){return Optional ....

回答 2 投票 0

将Java Map >转换为Map >

将Map >转换为Map >的良好做法是什么?我尝试用MultiMap做到这一点。地图 &... ] >>

回答 1 投票 0

Apaches Ignite不会序列化/反序列化Guavas LoadingCache

我正在使用Java7,并且正在配置Apaches Ignite(版本2.7.5),其中服务器/客户端已启动并正在运行。但是,客户端无法从对象中检索Guavas LoadingCache变量(...

回答 1 投票 0

为什么不使用内部库并使用原始库? [关闭]

我在我的项目中使用了番石榴内部库:import org.glassfish.jersey.internal.guava.HashBasedTable;导入org.glassfish.jersey.internal.guava.Table;建议我不要使用这些...

回答 2 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.