java - 在 clojure 中调用需要类作为参数的 java 方法

标签 java clojure interop metadata-extractor

我正在尝试在 clojure 中调用一个 java 方法( https://code.google.com/p/metadata-extractor ),该方法需要一个类作为参数。

Java:

metadata.getDirectory(GpsDirectory.class)

我的 Clojure 代码:

(.getDirectory metadata GpsDirectory)

最终出现以下异常:

IllegalArgumentException Don't know how to create ISeq from: com.drew.metadata.exif.GpsDirectory  clojure.lang.RT.seqFrom (RT.java:505)

我已经通过命名空间导入了java lib

(ns MyProject.exif
(:import [java.io File BufferedInputStream FileInputStream]
       [com.drew.imaging ImageMetadataReader]
       [com.drew.metadata.exif GpsDirectory]
       [com.drew.metadata Directory]))

有人知道如何在 clojure 中调用这些方法(需要一个类)吗?

最佳答案

尝试:

(.getDirectory metadata (class (GpsDirectory.)))

关于java - 在 clojure 中调用需要类作为参数的 java 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22176139/

相关文章:

java - Sqlite 将文本转换为十进制?

java - 将Python(django)实体类转换为Java的好方法

interop - MonoDevelop.Macinterop 驻留在哪里?

java - 学习 Java,以便我可以使用 clojure

java - 将用户输入与文本文件中的字符串进行比较

clojure - Leiningen 在哪里安装 clojure 库?

emacs - 如何将 swank 服务器输出重定向到 emacs 缓冲区?

collections - 创建函数集合

c# - 将 null 传递给 Interop 方法时,它会抛出 "Generic types cannot be marshaled."异常

c# - 将结构数组 ByRef 从 C# 传递到 C++ 并将其取回