2010-06-03 3 views
4

Я пытаюсь использовать некоторый код библиотеки, написанный в scala из java-программы. У меня есть функция, которая возвращает массив (Scala Array), и я думал, что можно было бы сделатьИспользование массива Scala из java

Tree[] = ScalaObject.myScalaFunction() 

Но я получаю эту ошибку:

[error] found : scala.runtime.BoxedArray 
[error] required: org.grammaticalframework.Trees.Absyn.Tree[] 

Что такое правильный способ использовать массив scala в java?

+1

Что такое sig of myScalaFunction()? – sblundy

+2

Вы используете scala 2.7? В scala2.8 scala Array равен массиву java. – Eastsun

+0

Предполагая, что myScalaFunction() действительно возвращает массив деревьев, попробовал ли вы вернуть возвращаемое значение соответствующим образом? –

ответ

10

С 2.7, вы должны быть в состоянии

Tree[] t = (Tree)ScalaObject.myScalaFunction().unbox(Tree.class); 

в Java.

С 2.8, он будет работать так, как вы надеялись.

Смежные вопросы