【问题标题】:The method map((<no type> cfg) -> {}) is undefined for the type List<capture#1-of ? extends Config>对于 List<capture#1-of 类型,方法 map((<no type> cfg) -> {}) 未定义?扩展配置>
【发布时间】:2019-09-02 11:06:16
【问题描述】:

恐怕这是简单的 lambda 映射函数的问题。但我不知道怎么做。下面是我的java代码,

public SparkConf createSparkConf(String appName, Config config) {
    SparkConf sparkConf = new SparkConf().setMaster(config.getString("system.master")).setAppName(appName);

    config.getConfigList("spark").map(cfg -> {
        String name = "spark." + cfg.getString("name");
        String value = cfg.getString("value");
        sparkConf.set(name, value);
    });

    if(config.hasPath("app")) {
        config.getConfigList("app").map(cfg -> {
            String name = "spark." + cfg.getString("name");
            String value = cfg.getString("value");
            sparkConf.set(name, value);
        });
    }

    return sparkConf;
}

但是map函数抛出如下异常。

The method map((<no type> cfg) -> {}) is undefined for the type List<capture#1-of ? extends Config>

config.getConfigList("app") 行返回List&lt;Config&gt;,但我不知道为什么map 函数会抛出这样的错误。有什么想法吗?

【问题讨论】:

  • List 没有 map 方法。 Streammap 方法。也就是说,如果你想使用Streammap,传递给它的映射函数应该返回一些东西。

标签: java lambda


【解决方案1】:

您正在寻找forEach 方法,因为您没有收集map 操作的结果。也可以拨打list.stream().map(...)联系。

【讨论】:

  • 感谢您的回复。我还有一个问题。应该在 forEach 函数中插入什么语句?我从 Scala 代码转换了这些代码。而且我找不到 forEach 函数
  • 您要求的功能从 JDK 8 开始可用。如果找不到,可能您使用的是 java 7 或更早版本?
猜你喜欢
  • 2014-01-29
  • 2023-04-04
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 2011-12-22
相关资源
最近更新 更多