Код: Выделить всё
public class ElementFactoryTest {
private final static Map, ? extends Element>>
void registerFactoryFunction(String type, BiFunction factoryFunction) {
functionMap.put(type, factoryFunction);
}
public static
MetaElement getElementList(String type, E element, String namespacePrefix) {
return functionMap.get(type).apply(element, namespacePrefix);
}
}
Код: Выделить всё
return functionMap.get(type).apply(element, namespacePrefix);
< /code>
не компилируется. Разве это невозможно сделать? Class = "Lang-Java PrettyPrint-Override">ElementFactoryTest.registerElementFactory("elementType", MetaElementSubclass::build);
public static MetaElement build(ElementSubclass element, String namespace) {
....
}
< /code>
Обновление 2 < /p>
Вот минимальный воспроизводимый пример: < /p>
public class ElementFactoryTest {
static class Parent {
public String getString() {
return "parent";
}
}
static class Child extends Parent {
public String getString() {
return "child";
}
}
private final static Map
Подробнее здесь: [url]https://stackoverflow.com/questions/69011033/applying-a-bifunction-from-a-map[/url]