Fre*_*rik 10 java clojure clojure-java-interop
我正在尝试编写一个可以在Java中使用的Clojure库,而用户不知道它是用Clojure编写的.为此,我需要我的字段有适当的类型:
我喜欢我可以这样做:
(deftype Point [^double x ^double y])
Run Code Online (Sandbox Code Playgroud)
这会为x/y生成一个具有适当类型的类.但是,这似乎只适用于原语,而不适用于类:
(deftype Foo [^String bar])
Run Code Online (Sandbox Code Playgroud)
生成一个:
public final Object bar;
Run Code Online (Sandbox Code Playgroud)
我期待的地方:
public final String bar;
Run Code Online (Sandbox Code Playgroud)
有没有办法约束字段类型?在deftype/ 之外还有其他选择defrecord吗?
Joo*_*aat 12
来自http://clojure.org/datatypes on deftype和defrecord:
字段可以具有类型提示,并且可以是原始的
请注意,目前非基本类型的类型提示 不会用于约束字段类型和构造函数arg,但将用于优化其在类方法中的使用
计划限制字段类型和构造函数arg
(我的重点)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |