可以将类型参数传递到由deftype实现的泛型接口中吗?我正在尝试使用一个严重依赖类型参数的框架,但显然无法使用纯Clojure做到这一点。我可以退回到纯Java,但由于其他原因,它使代码和构建配置变得更加繁琐,所以理想情况下,我希望保持它的纯净。
我想写的Java等价代码如下所示:
public class BlahBlahSerializer implements SerializationCustomSerializer<BlahBlah, BlahBlahProxy> {
/* implementation here */
}我正在寻找一种用Clojure编写类似以下内容的方法:
(deftype BlahBlahSerializer []
^{:generic-type-parameters [BlahBlah BlahBlahProxy]} SerializationCustomSerializer
/* implementation here */)这是完全可能的吗?
发布于 2020-01-15 08:21:00
在为Apache光束编写clojure库时,我遇到了这个问题,在这个库中,Beam将泛型的反射用于各种目的,并且无法找到解决它的方法。我的结论是,没有办法使用clojure将此信息放入发出的类中,尽管这不是决定性的。我的解决方案是编写小型类,这些类在Java中定义了这些东西,但其方法实现立即委托给Clojure代码。
https://stackoverflow.com/questions/59582939
复制相似问题