2014-09-27 116 views
-1

我有以下方法:如何將變量傳遞給Java中的匿名內部類?

public Promise<List<SearchResult>> search(String searchTerms, SearchType type) { 
    Promise<List<SearchResult>> response = WS.url(type.url + searchTerms). 
      get().map(
      new Function<WSResponse, List<SearchResult>>() { 
       public List<SearchResult> apply(WSResponse response) { 
        Document doc = Jsoup.parse(response.getBody()); 
        Elements results = doc.select(type.selector); 
        return buildResultList(results); 
       } 
      } 
    ); 
    return response; 
} 

不編譯,因爲匿名內部類沒有訪問SearchType參數傳遞到search方法。

我在想如何才能訪問匿名類中的這個參數?

我寫我的課程的方式是爲每個SearchType複製這種搜索方法 - 即我有三種不同的搜索方法(使用不同的名稱),但我希望有一些代碼重用,因此我試圖重寫方法,SearchType參數被傳入。

+0

錯誤信息說什麼?搜索它可能是值得的。 – user2864740 2014-09-27 06:17:05

回答

2

如果您將type參數標記爲final,那麼您可以在匿名內部類中使用它。

相關問題