如何将变量传递给Java中的匿名内部类?

时间:2014-09-27 06:13:11

标签: 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参数重写方法。

1 个答案:

答案 0 :(得分:2)

如果您将type参数标记为final,则可以在匿名内部类中使用它。