从JRuby转换Java对象

时间:2009-02-14 05:48:00

标签: casting jruby

我正在使用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强制转换为正确的类型?

1 个答案:

答案 0 :(得分:2)

所以,我不是很聪明。 JRuby JVM接口非常智能,可以自行投射,我正在错误地调用构造函数。实际的电话是:

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

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

JRuby:1 我:0