如何从导入类创建新对象

时间:2018-02-02 08:58:33

标签: clojure

我已导入firestore快照并尝试创建它的对象

(:import [com.google.cloud.firestore
        QueryDocumentSnapshot])
(def snapshot1 (QueryDocumentSnapshot.toObject. [:reference "user1" :type "Promotion" :included-scans 100]))

但编译失败,错误是:

Exception in thread "main" java.lang.ClassNotFoundException: QueryDocumentSnapshot.toObject,

是否可以帮我为该课程创建一个新对象 QueryDocumentSnapshot

2 个答案:

答案 0 :(得分:2)

您可以调用

之类的构造函数

(QueryDocumentSnapshot. whatever-arguments)

但是QueryDocumentSnapshot没有公共构造函数,而looking at the source它只能使用静态工厂方法实例化,如:

(QueryDocumentSnapshot/fromDocument firestore timestamp document)

我不确定你在这里真正想要达到的目标,但看起来你可以做你认为你可以对那个班级做的事情。

答案 1 :(得分:1)

好的,在考虑了你和Joost的答案后,我发现了一些相当有趣的东西:

您的错误消息显示无法找到类TableView。你有它。

如果要调用静态方法,则必须编写QueryDocumentSnapshot.toObject

有关java interop的更多信息,我强烈推荐官方文档:https://clojure.org/reference/java_interop

另外,请考虑Joost对课程本身的评论。