Pregunta

Estoy trabajando con una biblioteca de Java en JRuby. Estoy leyendo un objeto desde un archivo, y tengo que pasarlo como un tipo de objeto diferente a un segundo constructor:

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

@hmm_model es de tipo ObjectInputStream, y necesita ser echado a (HiddenMarkovModel). Obviamente, eso sería fácil en Java, que sólo sería:

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

Pero, por supuesto, eso no funciona en JRuby. ¿Hay realmente alguna manera de convertir explícitamente el @hmm_model ser del tipo correcto?

¿Fue útil?

Solución

Por lo tanto, no estoy muy brillante. La interfaz JRuby JVM es lo suficientemente inteligente como para echar en sí, estaba haciendo la llamada al constructor de forma incorrecta. La llamada real es:

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

y JRuby maneja correctamente la conversión de tipo a un HiddenMarkovModel.

JRuby: 1 Me: 0

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top