【发布时间】:2013-07-28 22:43:25
【问题描述】:
我是 Scala 新手。我需要帮助来解决这个问题。
我已经构建了一个project which is written in Scala,并且正在尝试将它与 Java 项目集成。我在eclipse的Java项目中依赖了build scala jar。
但是,当我在 Scala jar 中调用一个方法时,我会在运行应用程序时得到 ClassCastException:
以下是我得到的异常
线程“主”java.lang.ClassCastException 中的异常:com.rockymadden.stringmetric.phonetic.MetaphoneAlgorithm 无法转换为 com.rockymadden.stringmetric.StringFilter 在 com.rockymadden.stringmetric.phonetic.MetaphoneAlgorithm.compute(MetaphoneAlgorithm.scala:10) 在 org.gobe.search.dictionary.test.PhoneticTest.main(PhoneticTest.java:16)
我能做些什么来解决这个问题?
public static void main(String[] args) {
MetaphoneMetric metric = new MetaphoneMetric();
DummyImplicit di = new DummyImplicit();
MetaphoneAlgorithm algo = new MetaphoneAlgorithm();
char[] rr = {'h', 'e', 'l', 'l', 'o'};
System.out.println(algo.compute(rr, di));
}
在上面的代码“MetaphoneMetric”中,“DummyImplicit”是我生成的 Scala Jar 的一部分。
Metaphone算法的逻辑可以在http://pastebin.com/d7CXjDtx找到
【问题讨论】:
-
我能做些什么来解决这个问题?
-
向我们展示
MetaphoneAlgorithm.compute方法的逻辑(尤其是第10 行)。看来你在那里执行了不正确的演员表。 -
请在pastebin链接pastebin.com/Dgkb7rQz找到MetaphoneAlgorithm.compute()的逻辑
-
顺便说一句,使用来自 java 的全功能 scala 类与反之亦然不同。同样在粘贴的代码中没有类
MetaphoneAlgorithm,它是一个object。 -
我的错。我粘贴了错误的代码。这是正确代码pastebin.com/d7CXjDtx 的链接。我可以做些什么来解决这个问题?