我使用下面的代码来创建java.util.function功能>实例,并使用功能实例的返回值,将它传递给ExecutorService.submit () 方法。使用java.util.function功能,操作界面给出“无法找到符号”错误
但是,我收到了“未找到符号”异常。请帮助
下面的代码片段:
//Approach-1
Function<Integer, Callable<Integer>> doubleIt_1 = (index) -> {return() -> {return index * 2;};};
//Approach-2
Function<Integer, Callable<Integer>> doubleIt_2 = (index) ->() -> {return index * 2;};
//Approach 3
Function<Integer, Callable<Integer>> doubleIt_3 = (index) ->() -> index * 2;
//Use the "doubleIt" lambda function defined above to pass as a Lambda function to ExecutorService threadpool's submit method.
Function<Integer, Future<Integer>> task = (Integer index) -> pool.submit(doubleIt_1(index));
编译器会引发错误: 的java:找不到符号 符号:方法doubleIt_1(java.lang.Integer中) 位置:类declarative.L12LegacyToFunctionalInterface_4
请帮助...
的编辑的IntelliJ然而示出了不同的异常:“方法调用预期” –
原因doubleIt_1不是函数它是一个变量(算符)。它不是JavaScript,您可以在其中交换函数和变量。 – Lemonov
那么,这意味着你的类没有任何名为doubleIt_1的方法并以Integer为参数。 –