Последующая деятельность по итогам this SO question.Поставка Структурный тип при параметризации типа метода во время выполнения?
Предположим, у меня есть код
def bar(param: {def foo: Unit}*) = param.foreach(x => x.foo)
Эта функция вызывает объект param
для вызова метода с именем foo
[EDIT]
Мне было интересно, если следующий (с отражением или без отражения)
param
фиксируется во время компиляции, имя функции (в данном случаеfoo
) подается во время выполнения- как
param
и имя функцииfoo
поставляются во время выполнения param
фиксируется во время компиляции , имя функции, параметры функции, значения и типы возврата поставляются во время выполнения.
Я понимаю Структурная типизация уже использует отражение. Поэтому мой вопрос заключается в том, может ли Scala позаботиться об этом или если я явно использую отражение в своем коде. Я думаю, что для третьего требуется отражение, для которого я могу использовать библиотеку ASM.
Вопрос заключается в том, что если я не знал имя функции (в данном случае 'foo'), которое вызывается (например, попросите пользователя ее предоставить). – Jus12
Тогда вы не можете полагаться на структурную типизацию, так как первый шаг во время компиляции (см. Ответ). Вы должны использовать простое отражение. – paradigmatic