5
respostas

Erro - chamada da função

Quando tento chamar a função da service, aparece o seguinte erro: Unresolved reference: buscarPorId

5 respostas

Oi Mariana,

Posta aqui como ficou o seu codigo

package br.com.alura.Alura.service

import br.com.alura.Alura.Dto.NovoTopico import br.com.alura.Alura.model.Curso import br.com.alura.Alura.model.Topico import br.com.alura.Alura.model.Usuario import org.springframework.stereotype.Service import org.springframework.web.bind.annotation.RequestBody import java.util.*

@Service class TopicoService (private var topicos: List){

init {
    val topico = Topico(
        id = 1,
        titulo = "Duvida Kotlin",
        mensagem = "listas em Kotlin",
        curso = Curso(
            id = 1,
            nome = "Kotlin",
            categoria = "programação"
        ),
        autor = Usuario(
            id = 1,
            nome = "Gabriela Guimarães",
            email = "gabiguim@email.com"
        )
    )
    val topico2 = Topico(
        id = 2,
        titulo = "Duvida Java",
        mensagem = "listas em Java",
        curso = Curso(
            id = 1,
            nome = "Java",
            categoria = "programação"
        ),
        autor = Usuario(
            id = 1,
            nome = "Gabriela Guimarães",
            email = "gabiguim@email.com"
        )
    )
    val topico3 = Topico(
        id = 3,
        titulo = "Duvida Angular",
        mensagem = "Responsividade",
        curso = Curso(
            id = 1,
            nome = "Angular",
            categoria = "programação"
        ),
        autor = Usuario(
            id = 1,
            nome = "Gabriela Guimarães",
            email = "gabiguim@email.com"
        )
    )
    topicos = Arrays.asList(topico, topico2, topico3)
}


fun listar(): List<Topico>{
    return topicos
}

fun listarPorId(id: Long): Topico {
    return topicos.stream().filter({
        t -> t.id == id
    }).findFirst().get()
}

fun cadastrar(@RequestBody dto: NovoTopico){
    val novoTopico = Topico(
        id = topicos.size.toLong() + 1,
        titulo = dto.titulo,
        mensagem = dto.mensagem,
        curso = CursoService.buscarPorId(dto.idCurso)
    )
}

}

Pelo seu código você declarou a função com o nome listarPorId e não buscarPorId. Por isso o erro ocorre.

As funções listarPorId e buscarPorId não tem ligação. A função buscarPorId está sendo chamada da service abaixo, mas não compila.

package br.com.alura.Alura.service

import br.com.alura.Alura.model.Curso import org.springframework.stereotype.Service import java.util.*

@Service class CursoService(private var cursos : List) { init { val curso1 = Curso( id = 1, nome = "Kotlin", categoria = "Programação" ) val curso2 = Curso( id = 2, nome = "Java", categoria = "Programação" ) val curso3 = Curso( id = 3, nome = "Angular", categoria = "Programação" )

    cursos = Arrays.asList(curso1, curso2, curso3)
}

fun buscarPorId(id: Long): Curso {
    return cursos.stream().filter { c ->
        c.id == id
    }.findFirst().get()
}

}

Posta aqui o codigo completo dos seus controllers e services