2017-06-01 31 views
0

我發現從Java 8支持高階函數的方式:Lambda expressions and higher-order functions生成Java高階函數與訪問說明

像在JavaScript:

funcArr = ["abc","def"]; 
funcArr.forEach(function(x){ 
    eval(x+"=function(){console.log('new func');}"); 
} 

現在我的查詢是,如果我用提到的這種方法在上面的答案中,我可以指定創建函數的訪問修飾符:

+0

尋找匿名實現? –

+0

不是匿名的,需要定義好的函數生成 –

+0

你能解釋一下你需要它的原因嗎?我唯一能想到的是java8函數接口+ lambdas? – LazerBanana

回答

0

也許這會很有用。

Arrays.asList("abc", "def").forEach(func -> { 
      try { 
       new ScriptEngineManager().getEngineByName("js").eval(func + "=function(){console.log('new func');}"); 
      } catch (ScriptException e) { 
       //catch 
      } 
     }); 
+0

我發現從Java 8支持高階函數的另一種方式: https://stackoverflow.com/questions/15198979/lambda-expressions-and-higher-order-functions 現在我的查詢是,如果我用提到這種方法在上面的答案中,我可以爲創建的函數指定訪問修飾符 –