java - 在 Java 接口(interface)上调用 .class 时将 .class 传递给 Clojure 函数

标签 java clojure clojure-java-interop

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

调用 (class) 需要对象的实例,因为我需要静态类名。

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

Java Source method call

Interface to call .class on

通过 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/

相关文章:

java - 客户与产品列表之间的UML关系(Java Supermaket软件)

java - PhoneGap android : getting cannot create handler inside thread that has not called Looper. 准备()

Clojure:了解剂量中的结合

clojure - 何时评估集合的唯一元素?

clojure - 如何在 clojure 中处理 java 可变长度参数?

java - 从 Java 应用程序内将参数传递到 Duckling Clojure 函数

java - 获取 GWT 中的当前区域设置

java - JButton 子类在重绘期间具有自定义形状变化

clojure - Clojure(或 JCE,或 JVM,或...?)会自动引入并行性吗?

java - 如何使用 Maven 将 Clojure 依赖项包含到 Java 项目中