java - 我在 java 9 中发现了编译器错误吗?

标签 java eclipse compiler-errors java-9

我在 Eclipse 的第 11 行遇到编译错误。

类型不匹配:无法从 List<Object> 转换至List<JavaCompilerBug.Foo>

我相信这段代码应该可以编译,并且我创建了一个简短的示例来演示该问题:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Function;

public class JavaCompilerBug {

  public static void main(String[] args) {
    List<String> vals = Arrays.asList("1", "2", "3");

    List<Foo> foos = map(vals, s -> Foo.with(last(vals)));
  }

  public static class Foo {
    public static Foo with(String value) {
      return new Foo();
    }

    public static Foo with(Foo value) {
      return new Foo();
    }
  }

  public static <A, B> List<B> map(List<A> input, Function<A, B> function) {
    List<B> ret = new ArrayList<>();
    for (A element : input) {
      ret.add(function.apply(element));
    }
    return ret;
  }

  public static <T> T last(List<T> c) {
    return c.get(c.size() - 1);
  }

}

最佳答案

问题实际上出在 Eclipse 而不是 Java 编译器。此问题已在此处提交给 Eclipse:https://bugs.eclipse.org/bugs/show_bug.cgi?id=532860

关于java - 我在 java 9 中发现了编译器错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49467864/

相关文章:

java - 如何在java中返回一个数组?使用 Eclipse

java - Eclipse (Helios) 无法加载 DLL

JavaScript 到 Java : anonymous functions and dynamic objects

java - 什么时候关闭 PreparedStatement.setBlob 使用的 InputStream 是安全的?

java - 异常最终被吞噬

c# - 是什么让 ValueType 类特别?

java - 使用循环、switch 和 case 时出现编译器错误

java - 有没有办法在 Kotlin 中隐藏 Java 方法?

java - 未经检查的从 String 到 String 的转换

vba - excel vba编译年份函数错误