我有以下方法:
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 :(得分:2)
如果您将type
参数标记为final
,则可以在匿名内部类中使用它。