我需要将Java接口的.class传递给Clojure中的函数调用。
调用(class)需要对象的实例,在这里我需要静态类名。
基本上,这样我可以进行Java互操作并使用:keysetHandle.getPrimitive(Aead.class);
传递Aead,但Aead只是这样的接口,但无法弄清楚如何在Clojure中获得等效的Aead.class?
(。getPrimitive keyset-handle Aead.class)
答案 0 :(得分:4)
您尝试过(.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"