草庐IT

java - guava的ImmutableXXX真的是不可变的吗?

我已经使用guava一段时间了并且非常信任它,直到昨天我偶然发现了一个例子,这让我开始思考。长话短说,这里是:publicstaticvoidtestGuavaImmutability(){StringBuilderstringBuilder=newStringBuilder("partOne");ImmutableListmyList=ImmutableList.of(stringBuilder);System.out.println(myList.get(0));stringBuilder.append("appended");System.out.println(myList.g

java - 具有值(等于)相等性的 SoftReference 的潜在用途

我之前得出的结论是,如果您需要一个具有基于值(等于)的相等性的SoftReference,那么设计就会很糟糕,但内部人员除外。这是继GoogleCollections和Guava之后,不包括此类。但是我遇到了一个问题,我认为可以使用这样的对象。我们在视觉效果渲染场中有一个Assets管理系统,其中有100个进程运行相同的作业,只是渲染的帧数不同。我们有一个Oracle数据库,需要记录所有使用的Assets。在中间层Assets管理系统中,我们可以使用HashSet来记录是否要插入到Oracle中的对象,而不是用相同的插入来攻击Oracle,在这种情况下只有一个会成功完成所有作业。我可以

java - 使用 Google Collections 创建弱多图

是否有与MultiMaps的漂亮MapMaker等效的工具?目前我这样创建缓存:publicstaticMap>personCache=newMapMaker().weakKeys().makeMap();MultiMap的全部要点是避免嵌套的列表值。有什么方法可以用弱键构造多映射? 最佳答案 不幸的是没有。然而。您可以在我们的问题数据库中提交MultimapMaker功能请求吗?http://google-collections.googlecode.com 关于java-使用Goog

java - Multimap 与 HashMultiset 值

我正在尝试为每个键创建一个(基于散列的)Multimap,其中包含一个(基于散列的)多值集。看例子:Multimapmmap=Multimaps.newMultimap(Maps.>newHashMap(),newSupplier>(){publicCollectionget(){returnHashMultiset.create();}});mmap.put("1","2");但是,System.out.println(mmap.get("1")instanceofMultiset);//false,thereturnedcollectionisnotaHashMultiset,//

java - 添加/扩展由 ListeningExecutorService 创建的 Future 的行为

最终目标是为ListenableFuture添加额外的行为s基于Callable/Runnable参数的类型。我想为每个Future添加额外的行为方法。(示例用例可以在AbstractExecutorService'sjavadoc和Goetz的JavaConcurrencyinPractice的第7.1.7节中找到)我有一个现有的ExecutorService覆盖newTaskFor.它测试参数的类型并创建FutureTask的子类。这自然支持提交以及invokeAny和invokeAll.如何为ListenableFuture获得相同的效果由ListeningExecutorSer

java - 在 Google Guava 中使用异常

将GoogleGuava与应该抛出异常的方法结合使用的最佳模式是什么?假设我有:publicStingsomeMethod(Integeri)throwsSomeException;我想做的是:Lists=Lists.transform(is,newFunction(){publicStringapply(Integeri){returnsomeMethod(i);}});由于异常,我无法执行上述操作。有什么好的模式来处理它吗? 最佳答案 将已检查异常作为RuntimeException传播:try{returnsomeMethod

java - Trie 在 Guava 中的实现?

在过去,GoogleCollection包括一个implementationTRIE的。Guava中是否有任何TRIE实现?我需要一种有效的方法来查找一组字符串中的公共(public)前缀。 最佳答案 IsthereanyTRIEimplementationinGuava?没有。(IIRC,这或多或少是因为tries是一种非常通用的数据结构,而我们没有数据、资源或需求来设计符合Guava通常标准的API?)https://code.google.com/p/guava-libraries/issues/detail?id=10

java - Eclipse 无法编译通用代码,但 mvn compile 有效

在带有jdk1.7的EclipseKepler4.2中,我在Eclipse中遇到以下错误:Themethodor(capture#2-of?)inthetypeOptionalisnotapplicableforthearguments(Object)而它在运行时编译成功mvncompile.类如下所示:packagetestit;importjava.util.Map;importjava.util.Map.Entry;importcom.google.common.base.Optional;publicclassTest{privatestaticfinalObjectNO_VA

java - 选项类型变量和返回它们的方法的通用命名约定

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion命名返回选项类型的选项类型变量和方法的流行方式有哪些,以便将它们与非选项类型区分开来?假设一个DAO当前有一个返回实体实例或null的findById方法,如果我们弃用该方法并添加一个返回选项类型的方法,我们应该如何命名它?现在假设我们正在重构代码以使用这个新方法,我们不想用选项类型替换所有对实体变量的引用,我们应该如何命名选项类型变量?interfaceDao{@DeprecatedEN

java - 如何将 () 值放入 Guava 的缓存类中?

我对CacheBuilder有点困惑和Cache在Guava10中引入。文档暗示可以overwritevalues但据我所知,Cache不包含任何这样做的方法。有什么想法吗?我正在尝试构建一个在上次读取或写入后10秒过期的映射。查找值时,我希望返回先前设置的值,或者如果不存在则计算默认值。注意:这个问题已经过时了。虽然上面的Javadoc显示了Cache.put(Kkey,Vvalue)方法的存在,但在问题首次发布时它并不存在。 最佳答案 长期以来,Cache#asMap返回一个ConcurrentMapView。据我所知,还没有。