我需要将 Java 接口(interface)的 .class 传递给 Clojure 中的函数调用。
调用 (class) 需要对象的实例,因为我需要静态类名。
基本上这样我就可以与 java 互操作并使用:keysetHandle.getPrimitive(Aead.class);
通过 Aead,但 Aead 只是一个接口(interface),想要这样但无法弄清楚如何在 Clojure 中获得等效的 Aead.class?
(.getPrimitive keyset-handle Aead.class)
最佳答案
您是否尝试过(.getPrimitive keyset-handle Aead)
?
您应该能够通过使用接口(interface)的名称来传递接口(interface)的类。 Java 类示例:
public class Foo {
public <P> String bar(Class<P> klass) {
return klass.getCanonicalName();
}
}
然后在 REPL 中,例如使用 java.util.List
接口(interface):
user=> (import Foo)
Foo
user=> (.bar (Foo.) java.util.List)
"java.util.List"
关于java - 在 Java 接口(interface)上调用 .class 时将 .class 传递给 Clojure 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54377324/