Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import java.util.ArrayList;
- class Convoy {
- private ArrayList<Vehicle> vehicles = new ArrayList<>();
- public void add(Vehicle vehicle) {
- vehicles.add(vehicle);
- }
- }
- abstract class Vehicle {
- private int maxSpeed;
- //...
- }
- class Car extends Vehicle {
- private int cargoCapacityInLiter;
- //...
- }
- class Plane extends Vehicle {
- private int wingspanInMeter;
- //...
- }
- class Bicycle extends Vehicle {
- private int frameHeight;
- //...
- }
- public class Main {
- public static void main(String[] args) {
- RuntimeTypeAdapterFactory<Vehicle> vehicleAdapterFactory = RuntimeTypeAdapterFactory.of(Vehicle.class, "type")
- .registerSubtype(Car.class, "Car")
- .registerSubtype(Plane.class, "Plane")
- .registerSubtype(Bicycle.class, "Bicycle");
- Gson gson = new GsonBuilder()
- .registerTypeAdapterFactory(vehicleAdapterFactory)
- .create();
- String carJson = gson.toJson(new Car(), Vehicle.class);
- String planeJson = gson.toJson(new Plane(), Vehicle.class);
- String bicycleJson = gson.toJson(new Bicycle(), Vehicle.class);
- System.out.println(carJson);
- System.out.println(planeJson);
- System.out.println(bicycleJson);
- Convoy convoy = new Convoy();
- convoy.add(new Car());
- convoy.add(new Plane());
- convoy.add(new Bicycle());
- String convoyJson = gson.toJson(convoy);
- System.out.println(convoyJson);
- }
- }
Add Comment
Please, Sign In to add comment