我正在尝试编写一个Clojure库,它可以在用户不知道它是用Clojure编写的情况下从Java中使用。为此,我需要我的字段具有适当的类型:
我喜欢我可以这样做:
(deftype Point [^double x ^double y])它为x/y生成一个具有适当类型的类。然而,这似乎只适用于原语,而不适用于类:
(deftype Foo [^String bar])生成:
public final Object bar;我希望看到的是:
public final String bar;有没有办法约束字段类型?除了deftype/defrecord之外,还有其他选择吗
发布于 2012-08-25 23:40:06
来自deftype和defrecord上的http://clojure.org/datatypes
字段可以有类型提示,也可以是基元字段
请注意,当前是非基元类型的类型提示将不会用于约束字段类型或构造函数arg,但将用于优化其在类方法中的使用
计划约束字段类型和构造函数arg
(我的重点)
发布于 2012-08-25 22:42:41
也许可以尝试这样做:(deftype Point [#^Integer x #^Integer y])
https://stackoverflow.com/questions/12122831
复制相似问题