1
resposta

Erro no findFirst

Olá, estou com 2 erros, um é que meu /topicos não lista nada e quando eu coloco topicos/2, da erro no findFirst aparentemente

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

e esse é o código

package br.com.alura.forum.service

import br.com.alura.forum.model.Curso
import br.com.alura.forum.model.Topico
import br.com.alura.forum.model.Usuario
import org.springframework.stereotype.Service
import java.util.*

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

    // Inicializando uma lista de tópicos
    init {
        val topico = Topico(
            id = 1,
            titulo = "Duvida Kotlin",
            autor = Usuario(
                id = 1,
                nome = "Hugo",
                email = "hugo@email.com"
            ),
            curso = Curso(
                id = 1,
                nome = "Kotlin",
                categoria = "Programação",
            ),
            mensagem = "Variáveis com Kotlin"
        )
        val topico2 = Topico(
            id = 2,
            titulo = "Duvida UX",
            autor = Usuario(
                id = 2,
                nome = "Roberta",
                email = "roberta@email.com"
            ),
            curso = Curso(
                id = 2,
                nome = "UX Design",
                categoria = "Design",
            ),
            mensagem = "Como fazer uma história do usuário"
        )
        val topico3 = Topico(
            id = 3,
            titulo = "O que é MVC",
            autor = Usuario(
                id = 3,
                nome = "Alessandro",
                email = "alessandro@email.com"
            ),
            curso = Curso(
                id = 3,
                nome = "Design Patterns",
                categoria = "Programação",
            ),
            mensagem = "O que é MVC"
        )
        topicos = listOf(topico)
    }

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

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

Oi Hugo,

Pode postar o codigo do seu controller?

Outra coisa, vi essa linha no seu init:

topicos = listOf(topico)

Desse jeito ele vai criar a lista apenas com o primeiro topico.