Передача .class в Clojure Function, когда .class вызывается на интерфейсе Java - PullRequest
0 голосов
/ 26 января 2019

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

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

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

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

Интерфейс для вызова .class on

Передача Aead, но Aead - это всего лишь интерфейс, который так нужен, но не может понять, как получить эквивалентный класс Aead.class в Clojure?

(. GetPrimitive keyset-handle Aead.class)

1 Ответ

0 голосов
/ 26 января 2019

Вы пробовали (.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"
...