【问题标题】:Java 8: Generic type inference improvementsJava 8:泛型类型推断改进
【发布时间】:2013-12-14 15:06:19
【问题描述】:

JEP 101: Generalized Target-Type Inference,这个

final List<Boolean> bools = Arrays.asList(true,false, true);
final List<Character> string = bools.stream()
        .<Character>map(x -> x ? 'X' : 'O')
        .collect(Collectors.<Character>toList());

应该可以归约为

    final List<Boolean> bools = Arrays.asList(true, false, true);
    final List<Character> string = bools.stream()
            .map(x -> x ? 'X' : 'O')
            .collect(Collectors.toList());

在 Java 8 中,但后者无法编译:

Type mismatch: cannot convert from List&lt;Object&gt; to List&lt;Character&gt;

我记错了吗? 还是我领先于我的工具?

我正在使用JDK 8 build b120eclipse-SDK-4.3.1-win32-x86_64-efx-0.9.0-SNAPSHOT.zip

【问题讨论】:

标签: java generics type-inference java-8


【解决方案1】:

它在 IntelliJ Idea 13 下运行良好,它似乎领先于 Eclipse 对 Java8 的支持。 所以我猜你只需要等到 Eclipse 能够编译它。

【讨论】:

  • 看起来这是一个漫长的等待,因为我仍然在一年后的 4.4.1 版本上遇到几乎完全一样的错误。大声笑
【解决方案2】:

似乎这个问题现在已经解决,最新的 JDT 快照实现了所需的提案。

【讨论】:

    【解决方案3】:

    自 Java 8 发布以来,每个 Eclipse 版本都接受该示例。

    (发布大于或等于 P20140317-1600)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多