Я пытаюсь написать метод для запуска JDOM2 XPath. Я хотел бы иметь возможность передавать в любом типе фильтра (например, Filter<Content>
или Filter<Element>
. Я передаю в элементе. Элемент представляет собой интерфейс, который расширяет Content фильтра. Компилятор предупреждаетНевозможно отличить из XPathExpression <Object> в XPathExpression <Content>
«Метод executeXPath(Document, String, String, Filter<Content>
) в тип XMLUtilities не применим для аргументов (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) {...}
Мне пришлось использовать « extends Content>» для c ompiler, чтобы не жаловаться, затем в клиенте перечислите его в список. –
user994165