¿Qué está tratando de decirme Scala y cómo puedo solucionarlo? [requerido: java.util.List [? 0] donde escribe? 0]

Estoy en el proceso de aprender Scala y hoy me sentí seguro de presentarlo a uno de nuestros proyectos.

La aplicación hace muchas cosas JPA / Hibernate y comencé a implementar una de las interfaces Java en Scala. Todo salió bien, hasta que intenté traducir algún código de prueba de unidad a Scala.

Hago mucho uso de Easymock, el código se explica por sí mismo. Supongo que el problema es que Scala no me permite devolver un java.util.List escrito donde espera uno sin tipo. Desafortunadamente, no tengo idea de cómo hacer que Scala arroje algo que espera parámetros de tipo a algo sin.

Código que ilustra / reproduce mi problema:

package some.package.name

import java.util.ArrayList
import java.util.List
import javax.persistence.Query
import org.easymock.EasyMock._
import org.junit.Assert._
import org.junit.Test

class MyGreatScalaTest {

  @Test
  def testSomething() : Unit = {

    val mockQuery: Query = createMock(classOf[Query])
    val mockResult: List[String] = new ArrayList[String]
    mockResult.add("great value")

    expect(mockQuery.getResultList).andReturn(mockResult)
    replay(mockQuery)

    assertEquals(
      (mockQuery.getResultList.asInstanceOf[List[String]]).get(0),
      "great value")

    verify(mockQuery)
  }
}

Lo que produce el siguiente error del compilador:

[WARNING]  found   : java.util.List[String]
[WARNING]  required: java.util.List[?0] where type ?0
[WARNING]     expect(mockQuery.getResultList).andReturn(mockResult)
[WARNING]                                               ^     

Como puede ver, necesito el simulacro para implementar la interfaz dejavax.persistence.Query, que devuelve una java.util.List.

Respuestas a la pregunta(1)

Su respuesta a la pregunta