java - Splitter 在简单的 Pattern 上爆炸

标签 java guava

我刚开始用 Guava 代替 Google Collection 。 Splitter 类看起来很酷。但是当我使用它时,就像这样:

private static final Pattern p = Pattern.compile(" +");
private static final Splitter usSplitter = Splitter.on(p).trimResults();

我得到一个堆栈转储:

java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
        at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:662)
        at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:69)
        at com.google.common.base.Splitter.<init>(Splitter.java:99)
        at com.google.common.base.Splitter.on(Splitter.java:208)

javadocs 对这个“com.google.common.base.Platform”一无所知。所以很难猜测出了什么问题。

如您所见,模式非常简单。

最佳答案

java.lang.NoSuchMethodError告诉您所需的方法在当前运行时类路径 中丢失,而它在编译时类路径 中。

换句话说,要解决此问题,您需要调整运行时类路径,使其具有您在编译时使用的正确版本的 API。也可能是由于在整个运行时类路径中混合了不同版本的库。然后清理类路径。

关于java - Splitter 在简单的 Pattern 上爆炸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126276/

相关文章:

java - 在 toString 方法中抛出两个 NullPointerException

java - 第一次调用response.getOutputStream()时抛出IllegalStateException

android - 我可以使用 Java API 将图像文件存储在 firebase 中吗?

java - 我可以通过 JProfiler 分析 ant 任务吗?

java - 如何利用可选的 lambda 表达式

java - 计算Java 1.4中两个列表的不对称差异

java - 如何从另一个方法访问本地内部类的字段?

java - Guava 库中的 Iterators.any

java - 检查空字符串 null 吗?

java - Kotlin Guava Cache 未显示正确的 hitCount