为什么 hankcs/AhoCorasickDoubleArrayTrie 中的 lambda 示例不起作用?

凯恩

我只是从这个github 项目页面复制示例而没有任何更改,它给了我一个编译错误

要重现,请将此依赖项添加到您的 pom

<dependency>
  <groupId>com.hankcs</groupId>
  <artifactId>aho-corasick-double-array-trie</artifactId>
  <version>1.2.1</version>
</dependency>

然后尝试运行这个:

    // Collect test data set
    TreeMap<String, String> map = new TreeMap<String, String>();
    String[] keyArray = new String[]
            {
                    "hers",
                    "his",
                    "she",
                    "he"
            };
    for (String key : keyArray)
    {
        map.put(key, key);
    }
    // Build an AhoCorasickDoubleArrayTrie
    AhoCorasickDoubleArrayTrie<String> acdat = new AhoCorasickDoubleArrayTrie<String>();
    acdat.build(map);
    // Test it
    final String text = "uhers";
    acdat.parseText(text, (begin, end, value) -> {
        System.out.printf("[%d:%d]=%s\n", begin, end, value);
    });

编译错误是

The method parseText(CharSequence, AhoCorasickDoubleArrayTrie.IHit<String>) is ambiguous for the type AhoCorasickDoubleArrayTrie<String>

如果您需要澄清任何事情,请告诉我。不过,您应该能够使用我在此处提供的内容来重现这一点。

此外,有人建议这可能是我之前发布重复问题,但我认为情况并非如此,因为该问题与 lambda 函数无关。如果我错了,请帮助我了解该问题的答案如何解决我遇到的问题

洛萨

AhoCorasickDoubleArrayTrie有两种方法调用parseText,一种使用IHit,另一种使用IHitCancellable作为参数。两个接口都声明了一个方法boolean hit(int begin, int end, V value),因此通过使用 lambda,编译器不知道您打算调用什么方法。

我还没有通过谷歌搜索找到一个快速的解决方案,但你可以做的是声明你自己的类扩展AhoCorasickDoubleArrayTrie一个自己的方法,该方法调用具有你想要使用的接口的超类中的预期方法,例如

void myParseText(String text, IHit<V> hit) {
    super.parseText(text, hit);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么捕获 lambda 在 C++ 中不起作用?

为什么ng-click在示例中不起作用

为什么在此示例中命令注入不起作用?

为什么在此示例中getElementsByTagName不起作用

为什么useRef在此示例中不起作用?

为什么Java多态在我的示例中不起作用

为什么jQuery show()在示例中不起作用

注释不起作用,甚至在Dygraphs的jsFiddle示例中也不起作用,为什么?

为什么我的lambda不起作用?

为什么Dynamodb.put在Lambda函数中不起作用?返回null。如何调试?

不明白为什么我的异步等待在我的 lambda 函数中不起作用

为什么这个 lambda 表达式在语句中不起作用,但在方法中起作用?

为什么Spring的MessageDigestPasswordEncoder会将{{}`放入盐中?其javadoc中的示例似乎不起作用

为什么在此示例中,将with()用作map()调用中的函数不起作用?

为什么在此示例中cursor.clearselection()不起作用?

为什么Finalize / Destructor示例在.NET Core中不起作用?

为什么在这个angular2示例中,(焦点)不起作用?

为什么在这个简单的示例中datetime.strptime不起作用?

(AJAX / PHP)在这个简短的示例中,为什么我的POST请求不起作用?

为什么Photoshop SDK示例代码在我的Mac-OS10.7中不起作用?

Angular中的简单哈希爆炸示例。为什么不起作用?

为什么官方文档中的Android Instrumented Test示例不起作用?

在这个简单的示例中,为什么粘滞反应不起作用?

为什么在此示例中Convert.ToDateTime()不起作用?

为什么合成动画(UWP文档中的示例)不起作用?

对于此示例,为什么颜色在matplotlib中不起作用?

为什么Iife在一个简单的示例中不起作用?

为什么在此示例中$ data引用不起作用?

为什么词法绑定在emacs的此示例中不起作用?