2
respostas

Resolução Exercicio 04

Pessoal, gostaria de saber se a miha resolução foi uma opção. Consegui chegar no resultado esperado, mas se tratanto de código, gostaria da opinião para saber o que poderia ter feito de forma melhor(boas práticas).

--- Classe Veículo ---

public class Veiculo {
private String modelo;
private String marca;
private int ano;

public Veiculo(String modelo, String marca, int ano) {
    this.modelo = modelo;
    this.marca = marca;
    this.ano = ano;
}

public String getModelo() {
    return modelo;
}

public void setModelo(String modelo) {
    this.modelo = modelo;
}

public String getMarca() {
    return marca;
}

public void setMarca(String marca) {
    this.marca = marca;
}

public int getAno() {
    return ano;
}

public void setAno(int ano) {
    this.ano = ano;
}

@Override
public String toString() {
    return  " Modelo = " + modelo +
            " Marca = " + marca +
            " Ano = " + ano;
}

}

--- Main ---

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainVeiculo {
public static void main(String[] args) throws IOException {
Veiculo carro01 = new Veiculo("Argo","Fiat", 2025);
Veiculo carro02 = new Veiculo("Onyx", "Chevrollet", 2024);
Veiculo carro03 = new Veiculo("Jetta", "Volkswagem", 2025);

    FileWriter escreva = new FileWriter("veiculos.json");
    Gson gson = new GsonBuilder().setPrettyPrinting().create();

    List<Veiculo> listaVeiculos = new ArrayList<>();
    listaVeiculos.add(carro01);
    listaVeiculos.add(carro02);
    listaVeiculos.add(carro03);

    escreva.write(gson.toJson(listaVeiculos));
    escreva.close();

}

}

--- Arquivo json ---

[
{
"modelo": "Argo",
"marca": "Fiat",
"ano": 2025
},
{
"modelo": "Onyx",
"marca": "Chevrollet",
"ano": 2024
},
{
"modelo": "Jetta",
"marca": "Volkswagem",
"ano": 2025
}
]

2 respostas

Oi, Gabriel. Como vai?

Com o que você descreveu, sua solução cumpre o objetivo ao serializar a lista de Veiculo com Gson e gravar em veiculos.json.

Pontos importantes: use try-with-resources para fechar o arquivo automaticamente; considere campos final ou um record para imutabilidade; valide ano (ex.: não aceitar futuro muito distante); padronize grafias (Onix, Chevrolet, Volkswagen); e melhore o toString com separadores claros. Uma dica interessante para o futuro é usar Files.writeString (Java 11+), que simplifica a escrita de texto:


// exemplo: gravando JSON com try-with-resources
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.io.IOException;
import java.util.List;

public class MainVeiculo {
  public static void main(String[] args) throws IOException {
    List<Veiculo> veiculos = List.of(
      new Veiculo("Argo","Fiat",2025),
      new Veiculo("Onix","Chevrolet",2024),
      new Veiculo("Jetta","Volkswagen",2025)
    );
    Gson gson = new GsonBuilder().setPrettyPrinting().create();
    String json = gson.toJson(veiculos);
    Files.writeString(Path.of("veiculos.json"), json); // grava o texto no arquivo
  }
}

Esse código cria a lista, converte para JSON e grava o conteúdo no arquivo de forma simples.

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

Muito obrigado pela dica!