2014-09-27 114 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,那么您可以在匿名内部类中使用它。

相关问题