我正在尝试编写一个执行JDOM2 XPath的方法。我希望能够传入任何类型的过滤器(例如Filter<Content>
或Filter<Element>
。我传入一个元素。元素是一个扩展内容过滤器的接口。编译器警告
“方法executeXPath(Document, String, String, Filter<Content>
”不适用于参数(Document, String, String, Filter<Element>)
“
有没有办法在不必为每种内容类型创建单独的方法的情况下执行此操作?
Filter<Element> filter = new org.jdom2.filter.ElementFilter();
List<Element> xPathSearchedNodes = XMLUtilities.executeXPath(doc, "/x:root","http://www.example.com",filter);
...
static public List<Content> executeXPath(Document document, String xpathStr, String namespace, Filter<Content> filter) {...}
答案 0 :(得分:3)
你可以使你的方法通用:
static public <T extends Content> List<T> executeXPath(Document document, String xpathStr, String namespace, Filter<T> filter) {...}
如果你传递Filter<Content>
它会返回List<Content>
,如果你传递Filter<Element>
它会返回List<Element>
等等。