在 Java 接口上调用 .class 时将 .class 传递给 Clojure 函数

Pass .class to Clojure Function when .class is called on a Java interface

我需要将 class 的 Java 接口传递给 Clojure 中的函数调用。

调用 (class ) 需要一个对象实例,因为我想要静态 class 名称。

基本上这样我就可以 java 互操作和使用:keysetHandle.getPrimitive(Aead.class);

Java Source method call

Interface to call .class on

通过 Aead,但 Aead 只是一个接口,需要它,但不知道如何在 Clojure 中获得等效的 Aead.class?

(.getPrimitive 键集句柄 Aead.class)

你试过了吗(.getPrimitive keyset-handle Aead)

您应该能够通过使用界面的名称来传递界面的 class。一个例子 Java class:

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"