Scala: asignando una lista de enteros a un método que recibe java.lang.Object

Trabajando en Scala-IDE, tengo una biblioteca de Java, en la que uno de los métodos recibe java.lang.Object. Y quiero asignarle una lista de valores de Int. La única solución que funciona es:

val listOfInts = groupOfObjects.map(_.getNeededInt)

for(int <- listOfInts) libraryObject.libraryMethod(int)

mientras que el siguiente:

groupOfObjects.map(_.getNeededInt).map(libraryMethod(_)

e incluso

val listOfInts = groupOfObjects.map(_.getNeededInt)

val result = listOfInts.map(libraryObject.libraryMethod(_))

decir

type mismatch; found : Int required: java.lang.Object Note: an
implicit exists from scala.Int => java.lang.Integer, but methods
inherited from Object are rendered ambiguous. This is to avoid a
blanket implicit which would convert any scala.Int to any AnyRef. You
may wish to use a type ascription: x: java.lang.Integer.

y algo como

val result = listOfInts.map(libraryObject.libraryMethod(x => x.toInt))

o

val result = listOfInts.map(libraryObject.libraryMethod(_.toInt))

No funciona también.

1) ¿Por qué está sucediendo? Por lo que sé, las rutinas for y map no difieren mucho.

2) También: ¿qué medios puede desear usar una suscripción de tipo: x: java.lang.Integer? ¿Como podría hacerlo? Intenté designar el tipo explícitamente, como x: Int = > x.toInt, pero eso es demasiado erroneus. Entonces, ¿qué es la “inscripción de tipo”?

ACTUALIZAR:

La solución propuesta por T.Grottker, se suma a ello. El error que estoy consiguiendo con esto es este:

  • missing parameter type for expanded function ((x$3) => x$3.asInstanceOf[java.lang.Object])
  • missing parameter type for expanded function ((x$3) => x$3.asInstanceOf{#null#}[java.lang.Object]{#null#}) {#null#}

y yo estoy como, Dios mío, ¡simplemente crece! ¿Quién puede explicar qué son todos estos < null > ¿Las cosas significan aquí? Solo quiero saber la verdad. (NOTA: Tuve que reemplazar < > brakets con # porque el motor SO lo cortó todo entonces, así que usa tu imaginación para reemplazarlos).

Mejor respuesta
La falta de coincidencia de tipos le indica exactamente el problema: puede convertir a java.lang.Integer pero no a java.lang.Object. Así que dile que quieres pedir un Integer en algún lugar del camino. Por ejemplo:

groupOfObjects.map(_.getNeededInt: java.lang.Integer).map(libraryObject.libraryMethod(_))

(El valor de notación: Tipo: cuando se usa fuera de la declaración de un método de val o var o parámetro: significa ver el valor como ese tipo, si es posible; el valor debe ser una subclase de Tipo o debe una conversión implícita que puede convertir valor en algo del tipo apropiado.)

Por favor indique la dirección original:Scala: asignando una lista de enteros a un método que recibe java.lang.Object - Código de registro