3

我正在使用 JRuby 中的 Java 库。我正在从文件中读取一个对象,我需要将它作为不同的对象类型传递给第二个构造函数:

@hmm_model = ObjectInputStream.new(FileInputStream.new(LINGPIPE_MODEL_PATH))
@tagger = HmmDecoder.new(@hmm_model)

@hmm_model 是 ObjectInputStream 类型,需要转换为 (HiddenMarkovModel)。显然,这在 Java 中很容易,它只是:

@tagger = HmmDecoder.new((HiddenMarkovModel)@hmm_model)

但是,当然,这在 JRuby 中是行不通的。实际上有什么方法可以将 @hmm_model 显式转换为正确的类型?

4

1 回答 1

2

所以,我不是很聪明。JRuby JVM 接口足够聪明,可以自行转换,我错误地调用了构造函数。实际调用是:

@tagger = HmmDecoder.new(@hmm_model.readObject())

并且 JRuby 正确处理类型转换为 HiddenMarkovModel。

JRuby:1 我:0

于 2009-02-14T06:36:15.717 回答