我正在使用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强制转换为正确的类型?
答案 0 :(得分:2)
所以,我不是很聪明。 JRuby JVM接口非常智能,可以自行投射,我正在错误地调用构造函数。实际的电话是:
@tagger = HmmDecoder.new(@hmm_model.readObject())
和JRuby正确处理类型转换为HiddenMarkovModel。
JRuby:1 我:0