Issue
I am trying to use PostgreSQLContainer
from TestContainers (https://github.com/testcontainers/testcontainers-java + https://www.testcontainers.org/) in order to unit test my JPA repositories.
I declare my container like that:
private val postgresqlContainer = PostgreSQLContainer("postgres:12-alpine")
However, I encounter the following error, from Intellij IDE:
Not enough information to infer type variable SELF
The full error when I try to launch the service is:
Error:(26, 43) Kotlin: Type inference failed: Not enough information to infer parameter SELF in constructor PostgreSQLContainer<SELF : PostgreSQLContainer<SELF!>!>(p0: String!) Please specify it explicitly.
Solution
TestContainers depends on construction of generic type C<Self extends C<SELF>>
, but Kotlin don't like that.
My workaround was to define my own factory class:
class MyPostgreSQLContainer(imageName: String) : PostgreSQLContainer<MyPostgreSQLContainer>(imageName)
And I can use it like that:
private val postgresqlContainer = MyPostgreSQLContainer("postgres:12-alpine")
Answered By - veben
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.