在Java中,如何将变量传递给匿名内部类?
我有以下方法:在Java中,如何将变量传递给匿名内部类?,java,Java,我有以下方法: public Promise<List<SearchResult>> search(String searchTerms, SearchType type) { Promise<List<SearchResult>> response = WS.url(type.url + searchTerms). get().map( new Function<WSResponse
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参数
我想知道如何在匿名类中访问此参数
我编写类的方法是为每个SearchType复制此搜索方法-即,我有三个不同的搜索方法,名称不同,但我希望有一些代码重用,因此,我试图用传入的SearchType参数重写该方法。如果将类型参数标记为final,然后您可以在匿名内部类中使用它。错误消息说什么?也许值得一试。。