Questions tagged «guava»

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

4
番石榴的选修课有什么意义
我最近阅读了有关此内容的内容,并看到人们在使用此类,但在几乎所有情况下,使用效果null都很好-如果不是更直观的话。有人可以提供一个具体的例子,说明在哪些Optional方面null做不到或做得更干净的事情吗?我唯一能想到的就是将其与Maps不接受null键的键一起使用,但是即使这样,也可以通过对值的空值进行“映射”来实现。谁能为我提供更令人信服的论点?谢谢。
89 java  generics  guava 


5
如何将Java 8流收集到Guava ImmutableCollection中?
我要执行以下操作: List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); 但以某种方式得到的列表是Guava的实现ImmutableList。 我知道我能做 List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList()); List<Integer> immutableList = ImmutableList.copyOf(list); 但我想直接收集。我试过了 List<Integer> list = IntStream.range(0, 7) .collect(Collectors.toCollection(ImmutableList::of)); 但它引发了一个例外: com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:96)上的java.lang.UnsupportedOperationException


8
在模块guava-20.0.jar(com.google.guava:guava:20.0)中找到的重复类com.google.common.util.concurrent.ListenableFuture
在我的中使用implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0'时app/build.gradle,出现以下错误: Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-20.0.jar (com.google.guava:guava:20.0) and listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0) Go to the documentation to learn how to Fix dependency resolution errors. 我的内在app/build.gradle是: implementation 'com.google.android.gms:play-services-base:16.1.0' implementation 'com.google.android.gms:play-services-analytics:16.0.8' implementation 'com.google.android.gms:play-services-awareness:16.0.0' implementation 'com.google.android.gms:play-services-cast:16.2.0' implementation 'com.google.android.gms:play-services-gcm:16.1.0' implementation 'com.google.android.gms:play-services-location:16.0.0' implementation 'com.google.android.gms:play-services-maps:16.1.0' implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-iid:17.1.2' implementation 'com.google.firebase:firebase-messaging:17.6.0' implementation 'android.arch.work:work-runtime:1.0.1' implementation 'com.android.support:multidex:1.0.3' …

7
JUnit如何测试两个List <E>包含相同顺序的相同元素?
语境 我正在为该类编写一个简单的JUnit测试MyObject。 阿MyObject可以从静态工厂方法,需要一个可变参数的创建字符串。 MyObject.ofComponents("Uno", "Dos", "Tres"); 在存在的任何时间MyObject,客户都可以通过该方法检查以List &lt;E&gt;形式创建的参数.getComponents()。 myObject.ofComponents(); // -&gt; List&lt;String&gt;: { "Uno", "Dos", "Tres" } 换句话说,a会MyObject记住并公开使它存在的参数列表。有关此合同的更多详细信息: 的顺序getComponents将与为对象创建选择的顺序相同 允许重复的后续String组件并按顺序保留 行为null未定义(其他代码保证没有null出厂) 对象实例化后,无法更改组件列表 我正在编写一个简单的测试,该测试MyObject从String列表创建一个,并检查它是否可以通过返回相同的列表.getComponents()。我立即执行此操作,但这应该在现实的代码路径中一定距离处发生。 码 这是我的尝试: List&lt;String&gt; argumentComponents = Lists.newArrayList("One", "Two", "Three"); List&lt;String&gt; returnedComponents = MyObject.ofComponents( argumentComponents.toArray(new String[argumentComponents.size()])) .getComponents(); assertTrue(Iterables.elementsEqual(argumentComponents, returnedComponents)); 题 是谷歌番石榴 Iterables.elementsEqual()最好的办法,只要我有库在我的构建路径,那些两个列表比较?我一直在为此苦恼;我应该使用遍及Iterable &lt;E&gt; ..检查大小然后迭代运行的.equals()..的辅助方法还是Internet搜索建议的任何其他方法?比较单元测试列表的规范方法是什么? 我很想获得的可选见解 方法测试是否设计合理?我不是JUnit专家! .toArray()将List &lt;E&gt;转换为E的可变参数的最佳方法是吗?
77 java  junit  guava 

8
Lists.newArrayList与新ArrayList
创建ListString的最佳构造是什么?是Lists.newArrayList()(来自番石榴)还是new ArrayList()? 只是个人喜好吗? 还是仅仅是Type泛型类型推断? 还是使用Lists.newArrayList()有任何理论或实践价值?
73 java  generics  guava 

7
空时获取空字符串
我想获取字段的字符串值(它们可以是长字符串或任何对象的类型), 如果一个字段为空,那么它应该返回空字符串,我用番石榴做过; nullToEmpty(String.valueOf(gearBox)) nullToEmpty(String.valueOf(id)) ... 但是如果gearbox为null,则返回null!非空字符串,因为valueOf methdod返回字符串“ null”,这会导致错误。 有任何想法吗? EDIt:有100多个字段,我正在寻找易于实现的字段
73 java  guava 

9
用Java管理高度重复的代码和文档
高度重复的代码通常是不好的事情,并且有些设计模式可以帮助最大程度地减少这种情况。但是,由于语言本身的限制,有时这是不可避免的。以以下示例为例java.util.Arrays: /** * Assigns the specified long value to each element of the specified * range of the specified array of longs. The range to be filled * extends from index &lt;tt&gt;fromIndex&lt;/tt&gt;, inclusive, to index * &lt;tt&gt;toIndex&lt;/tt&gt;, exclusive. (If &lt;tt&gt;fromIndex==toIndex&lt;/tt&gt;, the * range to be filled is empty.) * * …

3
番石榴checkNotNull有什么意义
我对Guava还是很陌生(说实话,我不是“很新”,我是这个主题的新手),所以我决定阅读一些文档,并在阅读本文时感到非常惊讶: com.google.common.base.Preconditions.checkNotNull(...) 我不明白这种方法的意义。这意味着不要这样做: myObject.getAnything(); (NullPointerException如果myObject为null ,则可能会导致) 我应该用 checkNotNull(myObject).getAnything(); 这将抛出NullPointerException如果myObject是空和返回myObject,如果它不为空。 我很困惑,这可能是有史以来最愚蠢的问题,但是... 这有什么意义呢?在我可以想到的任何情况下,这两行所做的事情与结果完全一样。 我什至不认为后者更具可读性。 所以我一定想念一些东西。它是什么?

6
错误:com.android.builder.dexing.DexArchiveBuilderException:无法处理guava-21.0.jar Android 3.1开发者频道
在中更新依赖项版本后AndroidStudio3.1,我开始出现以下错误: Information:Gradle tasks [:app:assembleDebug] Error:com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar Error:com.android.builder.dexing.DexArchiveBuilderException: Error while dexing. Error:com.android.tools.r8.ApiLevelException: Default interface methods are only supported starting with Android N (--min-api 24): java.util.Collection com.google.common.collect.BiMap.values() Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'. &gt; com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Blabla\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\21.0\3a3d111be1be1b745edfa7d91678a12d7ed38709\guava-21.0.jar Information:BUILD FAILED in 6s Information:4 errors Information:0 warnings Information:See …

8
确保元素唯一性的队列?
我正在寻找java.util.Queue的实现或Google集合中某些行为类似于Queue的实现,但还要确保队列中的每个元素都是唯一的。(所有进一步插入均无效) 有这种可能,还是我必须手工做? 现在,我正在使用带有LinkedList实现的Queue,并在插入之前检查其唯一性。(我使用侧面图进行此操作,在排队之前/之后在侧面图中添加/删除元素)。我不太喜欢 欢迎任何输入。如果它不在java.util包中,那可能不是一个好主意?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.