Для тех, кто находит этот пост (как и я), задаваясь вопросом, почему они получают предупреждения об отражении при использовании proxy-super
...
Каждый прокси-метод имеет неявный this
первый аргумент, который, увы,, не намекается на тип (предположительно потому, что прокси-сервер реализует несколько возможных типов, а результирующий класс прокси создается позже).
Итак, если вы когда-либо вызываете методы из this
изнутрипрокси (это то, что proxy-super
в конечном итоге делает), тогда вы увидите предупреждения об отражении.
Простое решение - просто обернуть ваш код в let
, который использует подсказки типов.Например:
(let [^SomeClass this this]
(proxy-super foo)
(.bar this))