Я работаю над совместимостью Java/Clojure и наткнулся на предупреждение об отражении для следующего кода:
(defn load-image [resource-name]
(javax.imageio.ImageIO/read
(.getResource
(class javax.imageio.ImageIO)
resource-name)))
=> Reflection warning, clojure/repl.clj:37 - reference to field read can't be resolved.
Я удивлен этим, потому что getResource всегда возвращает URL-адрес, и поэтому я ожидаю, что компилятор будет использовать соответствующий статический метод в javax.imageio.ImageIO/read.
Кстати, код отлично работает, поэтому он явно находит правильный метод во время выполнения.
Итак два вопроса:
- Почему это возвращает предупреждение об отражении?
- Какой тип подсказки мне нужен, чтобы исправить это?