Closed FartoMan closed 2 years ago
Oi, amigão @FartoMan. Boa tarde. Ótima dúvida, vamos lá:
Se usarmos o médoto
public void setConteudos(Set<Conteudo> conteudos) {
this.conteudos = conteudos;
}
note que ele recebe como argumento um novo Set<Conteudo> conteudos
. Logo a execução desse método vai sobreescrever todos os conteúdos desse Bootcamp this.conteudos = conteudos;
e não é isso o que queremos.
O que queremos é PEGAR O SET DE CONTEÚDOS QUE JÁ EXISTE E ADICIONAR APENAS MAIS UM CONTEÚDO NESSE SET.
E como fazemos para adicionar um ítem em um set? Chamando o método adicionar.
Traduzindo isso em código java, por exemplo:
Conteudos listaDeConteudos = novoBootcamp.getConteudos(); //recuperei o Set com os conteúdos atuais
listaDeConteudos.add(novaCurso); //adicionei mais um conteúdo
//ou simplificando
novoBootcamp.getConteudos().add(novaCurso);
como e onde eu colocaria uma List ou Set para armazenar os inscritos e cursos sem que sejam diretamente dentro do bootcamp? No nosso projetinho, a regra é a seguinte: Um Dev só pode se registrar na plataforma se escolher um Bootcamp para fazer e um curso só pode existir se ele estiver vinculado com um Bootcamp. Para mudar isso, teriamos que mudar a regra de negócio. Na vida real, teriamos um banco de dados para salvar os alunos, os cursos e os bootcamps, separadamente. E assim, fazer o que precisasse. (:
Esclareceu bastante! Imaginei mesmo que a resposta fosse essa, só não tinha visto bem a lógica. E sobre o banco de dados, quero muuuuuuito pegar o jeito nisso pra abrir esse horizonte haha E já matando outra dúvida, trabalhei há anos com C++, se não me engano, e o banco que utilizava para gravar informações simples era um .txt. Hoje ainda se utiliza deles em Java?
Esclareceu bastante! Imaginei mesmo que a resposta fosse essa, só não tinha visto bem a lógica. E sobre o banco de dados, quero muuuuuuito pegar o jeito nisso pra abrir esse horizonte haha E já matando outra dúvida, trabalhei há anos com C++, se não me engano, e o banco que utilizava para gravar informações simples era um .txt. Hoje ainda se utiliza deles em Java?
Esclareceu bastante! Imaginei mesmo que a resposta fosse essa, só não tinha visto bem a lógica. E sobre o banco de dados, quero muuuuuuito pegar o jeito nisso pra abrir esse horizonte haha E já matando outra dúvida, trabalhei há anos com C++, se não me engano, e o banco que utilizava para gravar informações simples era um .txt. Hoje ainda se utiliza deles em Java?
Não sei te falar sobre C++ porque nunca peguei nada. hehe Mas em Java, usamos ou o banco de dados relacional (MySQL, Oracle, SQLite e etc) ou não-relacional (NoSQL, Redis e etc). Sugiro já começar a estudar sobre banco de dados. Temos um curso bem completo de PostgreSQL na DIO: https://web.dio.me/course/conceitos-e-melhores-praticas-com-bancos-de-dados-postgresql/learning/abe736a3-279b-465c-986f-e35be51a7b39/?back=/browse
Bom dia, Camila. Curso maravilhoso e está sendo de grande aprendizado, só deus sabe o quanto essa Orientação a Objetos confunde minha cabeça até eu entender, e quando entendo, bagunço novamente. hehe
Brincadeiras a parte... Seguindo o desafio, fiz um esquema de criar cursos e adicioná-los a um bootcamp criado (que ainda só consegui fazer um bootcamp, e posteriormente tentar pegar os cursos criados e adicionar a qualquer bootcamp criado):
novoBootcamp.getConteudos().add(novaCurso);
Fiquei me perguntando porque usamos o
getConteudo
ao invés desetConteudo
. Pelo próprio IntelliJ eu vi que dá erro, e sei que a resposta é bem simples, acho até que sei, porém eu gostaria que deixasse isso mais esclarecido para minha cabeça confusa. E aproveitando a ocasião, como e onde eu colocaria umaList
ouSet
para armazenar os inscritos e cursos sem que sejam diretamente dentro do bootcamp?Agradeço muito!