por*_*nez 4 java functional-programming intellij-idea java-8
当使用符号Funciton :: andThen时,如何让IntellijIDEA找到核心java 8'Function'接口的'andThen'方法?我尝试了许多不成功的事情.
我的intellijIDEA模块配置为java 8,使用的sdk是oracle java 8,我已经使缓存无效,并尝试了其他几个东西,但仍然编辑器标记然后为:"无法解析方法'而且'然后'".
我可以启动并构建这个示例,所以我认为它与静态代码分析器有关.也许是个bug?
package foo.bar;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
public class Meh {
public static void main(String... args) {
final List<Function<String, String>> fs = new ArrayList<>();
fs.add(s -> s + "1");
fs.add(s -> s + "2");
final Function<String, String> f =
fs.stream()
//copmiles from cli and project->make, but editor shows: Cannot resolve method 'andThen'
.reduce(Function::andThen)
.get();
System.out.println(f.apply(""));//succesfully prints 12
final Function<String,String> f2 = f.andThen(s-> s+"a");
//succesfully prints 12a
System.out.println(f2.apply(""));
}
}
Run Code Online (Sandbox Code Playgroud)
有趣的是,当我引用f.and然后,静态代码分析器不会抱怨.它只发生在我引用Function :: andThen时.
使用eclipse时这不是问题.或者,再次,从命令行编译,或转到项目 - > make
这似乎是在IntelliJ 15.0.2中修复的,15.0.1我可以重现这个错误标记.
在发行说明的 "Java.Error Highlighting"部分中提到了一些听起来像你的问题的错误,例如:
| 归档时间: |
|
| 查看次数: |
1133 次 |
| 最近记录: |