Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

DESAFIO - Spring

  • Crie um novo projeto com Spring Boot....
@SpringBootApplication
public class HoraPraticaApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(HoraPraticaApplication.class, args);
    }


    @Override
    public void run(String... args) throws Exception {
        Scanner sc = new Scanner(System.in);
        System.out.print("Por favor digite um numero: ");
        int numero = sc.nextInt();
        for (int i = 1; i<=numero;i++){
            System.out.println(i);
        }
  • Suponha que decidimos mudar...

Primeiro irei abrir o site https://mvnrepository.com e procurar pelo gson, depois escolher uma das suas versões. Depois copiarei o seu dependency do maven(ja que estou usando esse) e depois colarei no meu projeto no arquivo pom.xml dentro de dependencies(no final) e por fim sincrinizo o pom.xml.

  • Agora iremos trabalhar com serialização....
public class Tarefa {
    private  String descricao;
    private boolean concluida;
    private String pessoaResponsavel;

    public Tarefa(String descricao, boolean concluida, String pessoaResponsavel) {
        this.descricao = descricao;
        this.concluida = concluida;
        this.pessoaResponsavel = pessoaResponsavel;
    }(senão nao cabe tudo).....
    
  • Lembre-se: serializar um objeto....
File file = new File("tarefas.json");
        Tarefa tarefa = new Tarefa("assitir aula 01",false,"joão");
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(file,tarefa);
        System.out.println("Dados salvos no tarefas.json");
  • Agora, você fará o oposto da atividade....
Tarefa lertarefa = mapper.readValue(file,Tarefa.class);
        System.out.println("Tarefa lida: "+lertarefa);
  • Vamos criar objetos genéricos.....
public class Avaliacao <T>{
    private T item;
    private double nota;
    private String comentario;

    public Avaliacao(T item, double nota, String comentario) {
        if (nota < 0 || nota > 10){
            throw new IllegalArgumentException("A nota deve estar entre o e 10");
        }
        this.item = item;
        this.nota = nota;
        this.comentario = comentario;
    }

    public T getItem() {
        return item;
    }

    public void setItem(T item) {
        this.item = item;
    }

    public double getNota() {
        return nota;
    }

    public void setNota(double nota) {
        if (nota < 0 || nota > 10) {
            throw new IllegalArgumentException("A nota deve estar entre 0 e 10.");
        }
        this.nota = nota;
    }

    public String getComentario() {
        return comentario;
    }

    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    public static <T> double calcularMediaNotas(List<Avaliacao<T>> avaliacoes) {
        if (avaliacoes.isEmpty()) {
            throw new IllegalArgumentException("A lista de avaliações está vazia.");
        }
        double soma = 0;
        for (Avaliacao<T> avaliacao : avaliacoes) {
            soma += avaliacao.getNota();
        }
        return soma / avaliacoes.size();
    }

    @Override
    public String toString() {
        return "Avaliacao{" +
                "item=" + this.item +
                ", nota=" + this.nota +
                ", comentario='" + this.comentario + '\'' +
                '}';
    }
}

Avaliacao avaliacao = new Avaliacao("Smartphone xaomi Poco",8,"Caixa amassada");
        File file2 = new File("avalia.json");
        mapper.writeValue(file2,avaliacao);
2 respostas

E aí, Paulo! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Você praticou o uso do Spring Boot para estruturar aplicações Java, aplicou muito bem o Gson para serializar e desserializar objetos JSON e ainda demonstrou saber a relevância de usar generics para criar classes reutilizáveis.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
solução!

Oi, Paulo!

Seu projeto está muito bem estruturado. Gostei bastante de como você aplicou conceitos como serialização com ObjectMapper e o uso de generics na classe Avaliacao. Isso mostra domínio dos fundamentos e ótima prática de organização de código.