Что Scala пытается сказать мне и как я фиксирую это? [требуемый: java.util. Список [? 0], где тип? 0]

Я нахожусь в процессе изучения Scala, и сегодня я чувствовал себя уверенно представлять его одному из наших проектов.

Приложение делает много JPA / В спящем режиме материал, и я начал реализовывать один из интерфейсов Java в Scala. Все подходили, пока я не пытался перевести некоторый unittest-код в Scala.

Я делаю большое использование Easymock, код вполне сам объяснительный. Я предполагаю, что проблема, что Scala не позволяет мне возвращать введенный java.util. Список, где это ожидает невведенный. К сожалению, я понятия не имею, как заставить Scala бросить что-то, что ожидает параметры типа к чему-то без.

Код, который иллюстрирует/воспроизводит мою проблему:

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)
  }
}

Который производит следующую ошибку компилятора:

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

Поскольку Вы видите, что мне нужна насмешка для реализации интерфейса javax.persistence. Запрос, который возвращает java.util. Список.

6
задан BalusC 28 February 2013 в 14:15
поделиться