我使用下面的代碼來創建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爲參數。 –