| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
В этом задании вам предстоит поработать с библиотекой Lombok, которая позволяет генерировать код с помощью аннотаций.
User owner = new User(1, "Ivan", "P", 25);
// Вызываем автоматически сгенерированный геттер
owner.getFirstName(); // "Ivan"В файле уже создан класс Car, который описывает автомобиль. Допишите нужную аннотацию lombock, чтобы автоматически сгенерировать конструктор и геттеры для всех свойств и сделать класс неизменяемым.
Дополнительно создайте в классе два метода:
Car car = new Car(1, "bmv", "x5", "black", owner);
String jsonRepresentation = car.serialize();
System.out.println(jsonRepresentation); // =>
/*
{
"id":1,
"brand":"bmv",
"model":"x5",
"color":"black",
"owner":{
"id":1,
"firstName":"Ivan",
"lastName":"P",
"age":25
}
}
*/
String jsonRepresentation = // получаем JSON представление объекта
Car instance = Car.unserialize(jsonRepresentation);
instance.getBrand(); // "bmv"
instance.getModel(); // "x5"Создайте класс App с публичными статическими методами:
save() — принимает в качестве аргумента путь к файлу (объект класса Path) и объект класса Car. Метод сохраняет представление объекта в файл по переданному пути. Чтобы сохранить объект в файл, вам нужно будет представить его в виде строки (сериализовать).
extract() — принимает в качестве аргумента путь к файлу (объект класса Path), в котором содержится JSON представление объекта Car и возвращает инстанс класса Car с соответствующими свойствами.
Path path1 = Paths.get("/tmp/file1.json");
Car car1 = new Car(1, "audi", "q3", "black", owner);
App.save(path1, car1); // Сохраняет представление объекта в файл
Path path2 = Paths.get("/tmp/file2.json");
Car car2 = App.extract(path2); // Возвращает инстанс класса Car
car2.getModel(); // "passat"| Back | FazBrowse Home | New Git URL |