Применение бифункции с картыJAVA

Программисты JAVA общаются здесь
Anonymous
Применение бифункции с карты

Сообщение Anonymous »

Я пытаюсь применить бифункцию к параметрам метода в общем

Код: Выделить всё

    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);
}
}
registerFactoryFunction Код метода компилируется хорошо, но я не понимаю, почему строка

Код: Выделить всё

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]

Вернуться в «JAVA»