我在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是正确的类型?

有帮助吗?

解决方案

所以,我不是很亮。 JRuby的JVM界面是足够聪明的投本身,我正在调用构造函数不正确。实际的呼叫是:

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

和JRuby正确处理类型转换到一个HiddenMarkovModel。

的JRuby:1 我:0

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top