Tag: 番石榴

Google-guava checkNotNull和IntelliJ IDEA的“可能会产生java.lang.NullPointerException”

有什么办法来压制这个警告: MyClass object = null; /*Some code that 'might' set this object but I know it will*/ Preconditions.checkNotNull(object); //when "assert object != null" is used here no warning is shown merged.setName(dRElement.getName()); //"May produce 'java.lang.NullPointerException'" warning here 我使用的IntelliJ IDEA 10.5,我知道这个警告是不必要的,但我想在这里压制,并避免closures检查。

如何从Map <K,Collection <V >>创buildMultimap <K,V>?

我没有find这样的多图构build…当我想要这样做时,我遍历地图,并填充多图。 还有其他的方法吗? final Map<String, Collection<String>> map = ImmutableMap.<String, Collection<String>>of( "1", Arrays.asList("a", "b", "c", "c")); System.out.println(Multimaps.forMap(map)); final Multimap<String, String> expected = ArrayListMultimap.create(); for (Map.Entry<String, Collection<String>> entry : map.entrySet()) { expected.putAll(entry.getKey(), entry.getValue()); } System.out.println(expected); 第一个结果是{1=[[a, b, c, c]]}但我期望{1=[a, b, c, c]}

如何从Guava的List中获取max()元素

比方说,我们有一个项目集合: class Item { public String title; public int price; } List<Item> list = getListOfItems(); 我想用番石榴图书馆( 订购 ,我想)获得一个最高价格的项目。 我的意思是类似于这个Groovy代码: list.max{it.price} 我怎么做? 它有多高效?

Eclipse 1.5.0插件Maven不能安装在开普勒下

我下载了Eclipse Kepler并尝试从其更新站点安装M2Eclipse。 selectMaven Integration for Eclipse后,我点击下一步,出现以下错误: 缺less要求:Maven Integration for Eclipse 1.5.0.20140606-0033(org.eclipse.m2e.core 1.5.0.20140606-0033)需要'bundle com.google.guava [14.0.1,16.0.0)',但找不到 所以我通过互联网search了解如何安装Guava Eclipse插件。 有人说是来自Eclipse市场,但不能下载。 我下载了二进制文件,并试图将其复制到Eclipse的插件目录中。 还是一样的结果。 cp ~/Downloads/guava-16.0.1.jar /Applications/eclipse/plugins/com.google.guava_16.0.1.v1234.jar 我如何安装开普勒的m2e插件?

值为空时如何避免caching?

我正在使用番石榴来caching热门数据。当数据不存在于caching中时,我必须像这样从数据库中获取它。 public final static LoadingCache<ObjectId, User> UID2UCache = CacheBuilder.newBuilder() //.maximumSize(2000) .weakKeys() .weakValues() .expireAfterAccess(10, TimeUnit.MINUTES) .build( new CacheLoader<ObjectId, User>() { @Override public User load(ObjectId k) throws Exception { User u = DataLoader.datastore.find(User.class).field("_id").equal(k).get(); return u; } }); 我的问题是数据库中不存在数据时,我宁愿返回null,也不做任何caching。 但是,番石榴只是用caching中的键保存空值,当我得到它时抛出exception com.google.common.cache.CacheLoader $ InvalidCacheLoadException:CacheLoader对于shisoft关键字返回null。 那么,如何避免caching空值?

在Guava中展平Iterable <Iterable <T >>

在Guava中是否有flatten方法 – 或者将Iterable<Iterable<T>>转换为Iterable<T> ? 我有一个Multimap<K, V> [sourceMultimap],我想返回键匹配某个谓词[keyPredicate]的所有值。 所以现在我有: Iterable<Collection<V>> vals = Maps.filterKeys(sourceMultimap.asMap(), keyPredicate).values(); Collection<V> retColl = …; for (Collection<V> vs : vals) retColl.addAll(vs); return retColl; 我已经浏览了番石榴文件,但没有跳出来。 我只是检查我没有错过任何东西。 否则,我将把我的三行提取到一个简短的扁平通用方法中,并保持原样。

番石榴图书馆和GWT

刚刚发现了番石榴图书馆项目。 这些工作与GWT?

谷歌的ImmutableList和Collections.unmodifiableList()有什么区别?

来自ImmutableList javadocs: 不像Collections.unmodifiableList(java.util.List),它是一个单独的集合的视图,仍然可以改变,ImmutableList的一个实例包含它自己的私有数据,永远不会改变。 ImmutableList对于公共静态最终列表(“常量列表”)来说很方便,并且还可以让你轻松地为调用者提供给你的类的列表的“防御副本”。 这是否意味着: 如果我有Dimension对象的ImmutableList(例如),那么我不能改变它的任何维对象? 如果我有维度对象的Collections.unmodifiableList(列表),那么我不能只添加或删除任何对象,但我可以改变它们(例如调用setDimension(宽度,高度)方法)?

什么是番石榴checkNotNull点

我对番石榴很新鲜(说实话,我不是“新人”,我是一个完整的菜鸟),所以我决定阅读一些文档,在阅读时感到非常惊讶: com.google.common.base.Preconditions.checkNotNull(…) 我不明白这个方法的意义。 这意味着,而不是做: myObject.getAnything(); (如果myObject为null,可能会导致NullPointerException) 我应该使用 checkNotNull(myObject).getAnything(); 如果myObject为null, 则会抛出NullPointerException,如果不为null,则返回myObject。 我感到困惑,这可能是最愚蠢的问题,但… 这是什么意思? 在我能想到的任何情况下,这两行与结果完全相同。 我甚至不认为后者更具可读性。 所以我一定会错过一些东西。 它是什么?

如何使用Google集合将List <String>转换为Map <String,String>?

我有一个string的列表,我有一个函数来为列表中的每个键生成值,我想用一个方法创build地图。 谷歌collections有这样的function吗?