簡體   English   中英

在Groovy中,有沒有辦法知道一個包含閉包的變量的名稱?

[英]In Groovy, is there a way to know the name of a variable holding a closure?

標題可能會產生誤導。 我真正想要的是知道控制器中閉包的名稱。 但是Groovy中的閉包始終是匿名的,因此閉包本身沒有名稱。 但是閉包被分配給一個變量,我想知道我是否可以獲得該變量的名稱。 也許一個例子會有所幫助。 在Grails控制器中想象我有以下內容:

  def get_data = {
      Map results = [ 'errorCode' = -1, 'method' : 'get_data' ]
      ...
      render results as JSON
  }

在Map中稱為結果,有一個名為'method'的元素,我希望將其分配給此閉包的名稱(或者將閉包更加精確的變量)。 這可能嗎? 這里的想法是我想概括結果圖並想要自動填充一個名為'method'的元素。 本能地感覺這應該是可能的,但我沒有發現任何類似的用例來說明如何。 任何幫助非常感謝。

我不認為你可以在一般情況下獲得變量的名稱。 這只是一個參考,閉包可以分配給它們中的許多。

但是,在控制器代碼中獲取當前操作的名稱非常簡單:

def get_data = {    
  def results = ['method': actionName]
}

文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM