代码之家  ›  专栏  ›  技术社区  ›  perkss

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

  •  1
  • perkss  · 技术社区  · 7 年前

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

    调用(类)需要对象的一个实例,其中我需要静态类名。

    keysetHandle.getPrimitive(Aead.class);

    Java Source method call

    Interface to call .class on

    正在传递Aead,但Aead只是一个接口,希望如此,但无法解决如何在Clojure中获得等效的Aead.class?

    (.getPrimitive键集句柄Aead.class)

    1 回复  |  直到 7 年前
        1
  •  5
  •   Taylor Wood    7 年前

    你试过了吗 (.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"