如何在clojure repl中使用java.time? Java interop找不到类

问题描述 投票:1回答:1

如何在Clojure中使用java.time库?我什至无法将其导入到我的代表中。

user=> *clojure-version*
{:major 1, :minor 10, :incremental 0, :qualifier nil}
user=> (java.util.Date.)
#object[java.util.Date 0x5c22a205 "Tue Oct 08 22:10:21 PDT 2019"]

user=> (java.time.Instant.)
Syntax error (IllegalArgumentException) compiling new at (REPL:1:1).
No matching ctor found for class java.time.Instant

它在java docs中,并且我安装了Java 13https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/time/Instant.html

https://github.com/dm3/clojure.java-time声称要使用它,如果我尝试在项目中使用它,那很酷。但是我只想导入它,并在REPL中播放一个日期。怎么做?

clojure java.time
1个回答
2
投票

在Clojure中,语法(some.class.Name.)带有“。”。类名后面的意思是调用该类的构造函数。如果查看类java.time.Instant的Java文档页面,您会注意到它没有构造函数:https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html

有一种称为now的方法,该方法返回一个Instant类型的对象,您可以在Clojure中使用此语法进行调用:

user=> (java.time.Instant/now)
#object[java.time.Instant 0x599f571f "2019-10-09T05:18:06.192393Z"]
© www.soinside.com 2019 - 2024. All rights reserved.