当前位置: 首页 > 知识库问答 >
问题:

为什么返回类型不正确[重复]

方德宇
2023-03-14

line.FlatMap(WordSutil::GetWords)是方法引用中错误的返回类型:无法将java.util.List 转换为java.util.Iterator

return lines.map(String::toLowerCase)
              .flatMap(WordsUtil::getWords)
              .mapToPair(w -> new Tuple2<>(w, 1))
              .reduceByKey((a, b) -> a + b)
              .mapToPair(Tuple2::swap)
              .sortByKey(false).map(Tuple2::_2).take(topX);

编码方法:

 public static List<String> getWords(String line) {
    List<String> words = new ArrayList<>();
    BreakIterator breakIterator = BreakIterator.getWordInstance();
    breakIterator.setText(line);
    int lastIndex = breakIterator.first();
    while (BreakIterator.DONE != lastIndex) {
        int firstIndex = lastIndex;
        lastIndex = breakIterator.next();
        if (lastIndex != BreakIterator.DONE && Character.isLetterOrDigit(line.charAt(firstIndex))) {
            words.add(line.substring(firstIndex, lastIndex));
        }
    }

    return words;
}

共有1个答案

宓跃
2023-03-14

Flat Map的函数需要返回一个迭代器:

.flatMap(w -> WordsUtil.getWords(w).iterator())
 类似资料:
  • 我有一个Vue.js应用程序,我的部署设置非常标准, 豆荚- 这是相关代码, Dockerfile: Nginx。形态: Ingress Prod:(为了简洁起见,仅保留必要的位), 本地入口: 我得到的错误是, 未捕获的语法错误:意外令牌 未捕获的语法错误:意外令牌 网络选项卡中这两种资源的内容类型都是。 编辑1: 这是部署后我的文件夹的外观, 我的js文件的路径是,

  • 如果我有以下代码 首先,这甚至是可能的,因为它编译得很好。但是我不能使用中的方法执行操作: makeCan是否不同时返回Can和PromotionalCan?如果是这样,当返回PromotionalCan时,如何对变量进行操作?谢谢 编辑:PromotionalCan继承自Can,第二种方法是在PromotionalCan中

  • 使用的方法引用具有返回类型。但在以下示例中允许使用不兼容。 如何使用声明方法以使方法引用类型安全而无需手动强制转换? 我尝试在没有注释处理(自动值)或编译器插件(龙目岛)的情况下实现通用构建器

  • 本文向大家介绍为什么方法不能根据返回类型来区分重载?相关面试题,主要包含被问及为什么方法不能根据返回类型来区分重载?时的应答技巧和注意事项,需要的朋友参考一下 我们来看以下的代码: 在Java语言中,调用一个方法,即使这个方法有返回值,我们也可以不接收这个返回值,例如以上两个方法doSome(),在testMethod()中调用的时候,Java编译器无法区分调用的具体是哪个方法。所以对于编译器来说

  • 问题内容: 我希望从编译时以及运行时的角度来看,提供正确类型的返回值都不会成为问题。 但是我一定是错的。 编辑: 它不与和。 问题答案: 根据该方法的Javadoc: 实际结果类型为| X | 是擦除其上调用的表达式的静态类型。例如,此代码段中不需要强制转换 在此,您的代码段中的值为,因此只能分配给或。 使用这种特定措辞的原因是因为当您说该变量具有类型T其中where时,可以存在多个扩展的类,因此