2016-05-31 79 views
1

我有以下的關閉: 高清檢查= {X,Y,Z - >一些代碼}的Groovy閉包參數的名稱

是否有可能得到的參數名稱( 「X」, 「Y」,」 z「)在關閉? 並將其用作關閉代碼的一部分

例如,打印參數名稱,然後是值。

謝謝

+0

內關閉你知道他們的名字。但是如果來自封閉外部,你想知道所有參數都傳遞給它以及它們的價值,那麼你不能那樣做。 –

+0

我想在封閉內使用它們。例如:def check = {x,y - > println ** arg1Name + x} – roh

+0

這樣做沒有直接的方法。見http://stackoverflow.com/q/4114190/1799527 –

回答

-1

你可以使用閉包中的這些參數。

def a = {a, b, c -> 
    a + b + c 
} 
assert 6 == a(1,2,3) 

第二個版本

def a = {a, b, c -> 
    [a:a, b:b, c:c] 
} 
assert [a:1, b:2, c:3] == a(1,2,3) 
+1

當然這是可能的。 我的問題是得到他們的**名稱**而不是他們的值。 – roh

+0

好的,你爲什麼要使用這些值? 和什麼?我們可以找到另一種方式。 – koji

+0

我需要創建一個映射,其中的關鍵是參數名稱和值是參數值 – roh