gpt4 book ai didi

Clojure 的 :gen-class and double arrays

转载 作者:行者123 更新时间:2023-12-02 21:22:38 24 4
gpt4 key购买 nike

我正在尝试对一个 fn 进行 :gen-class ,它采用二维 double 组作为输入。我已经看过帖子和解决方案here关于类似的主题,但我仍然无法提供有效的解决方案。

(ns gui.heatmap
(:gen-class
:name gui.Heatmap
:methods [[heat-map2 ["[[D"] org.jfree.chart.JFreeChart]]))

(defn foo [dbl-array]
...)

我使用 "[[D" 基于在我的输入上使用 type 。这可以很好地编译成 .class 文件。

现在,当我移动到另一个 .clj 文件时,我得到以下内容。

(ns ...
(import (gui.Heatmap)))

(defn bar [args]
...
(.foo
(into-array
(vector
(double-array <list of numbers>)
(double-array <list of numbers>)
(double-array <list of numbers>)))))

当我从 repl 调用 bar 时,出现以下错误:

java.lang.IllegalArgumentException:未找到匹配字段:类 [[D

的 heat_map2

有什么想法吗?

最佳答案

您缺少该对象。 (.foo (to-array ...)) vs (.foo (Heatmap.) (into-array...))

请注意,您还应该需要您的gui.Heatmap命名空间。否则,如果 ... 命名空间在 gui.Heatmap 之前编译,您可能会遇到麻烦。然后导入失败,因为类还没有生成。添加 require 将解决此问题。

编辑:

澄清事情。

  • 修复丢失的对象
  • 添加要求
  • 修复前缀(dbyrne 的好收获!)
  • 修复 :import 子句(也是错误的)
(ns gui.heatmap
(:gen-class
:name gui.Heatmap
:methods [[heat-map2 ["[[D"] org.jfree.chart.JFreeChart]]))

(defn -foo [dbl-array]
...)

(ns ...
(import gui.Heatmap))

(defn bar [args]
...
(.foo
(Heatmap.)
(into-array
(vector
(double-array )
(double-array )
(double-array )))))

关于Clojure 的 :gen-class and double arrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com