Передача.class в Clojure Function, когда.class вызывается на интерфейсе Java
Мне нужно передать.class для интерфейса Java для вызова функции в Clojure.
Вызов (класс) требует экземпляр объекта, где, как я хочу, статическое имя класса.
В основном, поэтому я могу взаимодействовать с Java и использовать: keysetHandle.getPrimitive(Aead.class);
Передача Aead, но Aead - это всего лишь интерфейс, который так нужен, но не может понять, как получить эквивалентный класс Aead.class в Clojure?
(.getPrimitive keyset-handle Aead.class)
1 ответ
Решение
Ты пытался (.getPrimitive keyset-handle Aead)
?
Вы должны быть в состоянии передать класс вашего интерфейса, просто используя его имя. Пример Java-класса:
public class Foo {
public <P> String bar(Class<P> klass) {
return klass.getCanonicalName();
}
}
Затем в REPL, используя java.util.List
интерфейс например:
user=> (import Foo)
Foo
user=> (.bar (Foo.) java.util.List)
"java.util.List"