0
respostas

Type mismatch. Required:String Found:String?

Boa noite, pessoal!

Tenho minha classe:

package br.com.alura.alugames.dados

import br.com.alura.alugames.modelo.Gamer
import br.com.alura.alugames.utilitario.toEntity
import br.com.alura.alugames.utilitario.toModel
import javax.persistence.EntityManager


class GamersDAO(manager: EntityManager) : DAO<Gamer, GamerEntity>(manager, GamerEntity::class.java) {

    override fun toEntity(objeto: Gamer): GamerEntity {
        return GamerEntity(objeto.id, objeto.nome, objeto.email, objeto.dataNascimento, objeto.usuario, objeto.plano.toEntity())
    }

    override fun toModel(entity: GamerEntity): Gamer {
        return Gamer(entity.nome, entity.email, entity.dataNascimento, entity.usuario, entity.id).apply { plano = entity.plano.toModel() }
    }
}

e:

package br.com.alura.alugames.dados

import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
import javax.persistence.ManyToOne
import javax.persistence.Table

@Entity
@Table(name = "gamers")
class GamerEntity(
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    var id: Int = 0,
    val nome: String = "Nome do Gamer",
    val email: String = "email@email.com",
    val dataNascimento:String? = null,
    val usuario:String? = null,
    @ManyToOne
    val plano: PlanoEntity = PlanoAvulsoEntity()) {
}

só que na classe GamersDAO, está acontecendo o seguinte erro nessa linha:

return Gamer(entity.nome, entity.email, entity.dataNascimento, entity.usuario, entity.id)

Type mismatch. Required:String Found:String?

mas o código está igual dos professores.

Pesquisei um pouco sobre o assunto e fala que o Kotlin trata String e String?(possibilidade de ser nulo) de formas diferentes, mas o que não entendi é que o código está igual do repositório. Será que o código do repositório do curso está com erro ou é algo aqui? Alguém poderia ver isso pra mim, por favor?