针对:: functions的Eclipse Java 8建议?

时间:2014-12-11 16:02:17

标签: eclipse java-8

Eclipse为我提供了函数内容辅助。例如,String. ctrl + space 向我显示String.valueOf()等。

使用流并使用::,但这不起作用。例如,new LinkedList<String>().stream().map(String:: ctrl + space 无法帮我完成new LinkedList<String>().stream().map(String::valueOf);

是否有一些选项或插件可以启用此功能?我使用Eclipse Luna(4.4.0)。

1 个答案:

答案 0 :(得分:3)

Eclipse Luna确实包含对方法引用语法的支持,但显然不在您尝试的特定上下文中。但是,如果将方法引用声明为具有特定类型的变量,它确实有效。像这样:

Function<String, Object> methodRef = String::valueOf;
new LinkedList<String>().stream().map(methodRef);

在此代码中,内容辅助在::点正常工作。我怀疑这是因为Eclipse以这种方式提供有关类型的更多信息(在变量中声明了类型),而不是示例的内联语法。

根据Eclipse bug 430656,这已经针对4.4.2版本进行了修复,该版本将于2015年2月发布。在此之前,您可以下载4.4.2的早期里程碑版本