1
resposta

Alguém pode me ajudar : meu codigo ta dando erro na linha 32 , na parte info eu nao consigo importar o info , o não esta localizando o import

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

br.com.alura.games.Servico.ConsumoApi :
package org.example.br.com.alura.games.principal

import br.com.alura.games.Servico.ConsumoApi
import com.google.gson.Gson
import org.example.br.com.alura.games.modelo.InfoJogo
import org.example.br.com.alura.games.modelo.Jogo
import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse.BodyHandlers
import java.util.*
import br.com.alura.games.Servico.ConsumoApi


//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
fun main() {

    val leitura = Scanner(System.`in`)
    println("Digite um codigo de jogo para buscar")
    val busca = leitura.nextLine()

    val buscaApi = ConsumoApi()
    buscaApi.buscaJogo(busca)

    val informacaoJogo = buscaApi.buscaJogo(busca)

    var meuJogo: Jogo?=null

    val resultado = runCatching {
    val meuJogo = Jogo(
        informacaoJogo.info.title,
        informacaoJogo.info.thumb)
        println(meuJogo)

    }

    resultado.onFailure {
         println("Jogo inexistente. Tente mais tarde")

    }
    resultado.onSuccess { "Desejar inserir uma documentacao personalisada ? S/N" }
    val opcao = leitura.nextLine()
    if (opcao.equals("s",true))
        println("Isira a descricao personalisada do jogo ")
        val descricao = leitura.nextLine()


}
1 resposta

Pode ser que o método buscaJogo da classe ConsumoApi não tá retornando um objeto que tem a propriedade info, ou talvez essa propriedade tá meio escondida por aí, tipo privada ou algo do tipo.

Pra resolver isso, tu precisa garantir que o método buscaJogo tá mandando de volta um objeto do tipo InfoJogo ou algum outro tipo que tem essa parada info que tu tá tentando pegar. E ainda, confere se a propriedade info tá de boa, se é pública ou se tem algum getter que tu precisa usar pra pegar ela.

Dá uma olhada nesse exemplo de como tu poderia arrumar o código, considerando que buscaJogo agora retorna um objeto do tipo InfoJogo:

// Assumindo que buscaJogo agora retorna um objeto do tipo InfoJogo
val informacaoJogo: InfoJogo = buscaApi.buscaJogo(busca)

// Agora dá pra pegar as propriedades title e thumb direto
val meuJogo = Jogo(
    informacaoJogo.title,  // Ajusta aqui pra pegar a propriedade title
    informacaoJogo.thumb   // Ajusta aqui pra pegar a propriedade thumb
)
println(meuJogo)

Só confirma se o que o buscaJogo tá mandando de volta bate com o que tu tá tentando pegar no código. Se o erro continuar, talvez seja hora de dar uma revisada na classe ConsumoApi e no tipo de objeto que o método buscaJogo tá retornando.