3

LazySeq を返す Clojure 関数があります。REPL からこの関数を実行すると、問題なく動作します。ただし、次のような Java コードから同じ関数を呼び出そうとすると、次のようになります。

Object result = com.acme.forecast.core.runforecast("file1.csv", "file2.txt");

次の例外が発生します。

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: 
  clojure.lang.LazySeq cannot be cast to java.lang.Number
    at com.acme.forecast.core.runforecast(Unknown Source)
    at com.acme.forecast.client.gui.ClientGUI.actionPerformed(ClientGUI.java:180)

私のgen-classは、NumberではなくLazySeqを返していると言います:

  (:gen-class
    :name com.acme.forecast.core
    :methods [#^{:static true} [runforecast [String String] clojure.lang.LazySeq]])

ここで何がうまくいかないのですか?

4

2 に答える 2

3

エラーは、LazySeq を返していることを示しています。問題は、このコード セグメントのどこにあるのかわかりませんが、Number に格納しようとしていることです。

于 2012-02-17T21:40:23.090 に答える
1

どうでも。問題が見つかりました。古いバージョンの .class ファイルが転がっていました。

于 2012-02-17T21:51:04.493 に答える