Передача.class в Clojure Function, когда.class вызывается на интерфейсе Java

Мне нужно передать.class для интерфейса Java для вызова функции в Clojure.

Вызов (класс) требует экземпляр объекта, где, как я хочу, статическое имя класса.

В основном, поэтому я могу взаимодействовать с Java и использовать: keysetHandle.getPrimitive(Aead.class);

Вызов метода Java Source

Интерфейс для вызова.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"
Другие вопросы по тегам